有個專案,用寶塔搭建環境一切正常,但是在docker 容器中報
sha1() expects parameter 1 to be string, object given
錯誤;對比composer 擴充套件,版本號完全一樣。嘗試把出現問題的程式碼放到寶塔搭建的環境內,也可以正常訪問。
環境
映象系統: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 協議》,轉載必須註明作者和本文連結