laravel-admin用dingo/api報sha1() expects parameter 1 to be str

191834552發表於2021-04-19

有個專案,用寶塔搭建環境一切正常,但是在docker 容器中報

sha1() expects parameter 1 to be string, object given

錯誤;對比composer 擴充套件,版本號完全一樣。嘗試把出現問題的程式碼放到寶塔搭建的環境內,也可以正常訪問。
laravel admin 使用 dingo/api 報sha1() expects parameter 1 to be string, object given

環境

映象系統:alpine:3.12
php:7.2.33
mysql:5.7
laravel:5.5.50
dingo/api:2.2.4
檔案系統是掛載的nfs
/var/www/html # php -m
[PHP Modules]
apc
apcu
bcmath
Core
ctype
curl
date
dom
fileinfo
filter
ftp
gd
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
protobuf
readline
redis
Reflection
session
SimpleXML
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
xxtea
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

請大佬幫忙看看是什麼原因導致的!

臨時解決辦法:
目前發現可以在laravel-admin 內的vendor/encore/laravel-admin/src/Layout/Content.php 新增
__toString() 解決,但是沒有找到什麼原因導致的問題,而且修改vendor 會被升級覆蓋

  /**
 * Render this content. * * @return string
 */  
 public function render()
 { 
  $items = [
  'header' => $this->header,
  'description' => $this->description,
  'breadcrumb' => $this->breadcrumb,
  'content' => $this->build(),
  ];
 return view('admin::content', $items)->render();
  }
//    臨時 解決
  public function __toString(){
      return $this->render();
  }
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章