当使用 php artisan config:cache
后,出现:
Call to undefined method Closure::__set_state()
经过排查,是配置文件(config
目录下)中使用了闭包(函数),我的例子是使用 laravel-sms
时,遇到以下代码:
/*
|--------------------------------------------------------------------------
| 验证码短信通用内容
|--------------------------------------------------------------------------
|
| 如需缓存配置,则需使用 `Toplan\Sms\SmsManger::closure($closure)` 方法进行配置
|
*/
'content' => function ($code, $minutes, $input) {
return '【signature】您的验证码是' . $code . ',有效期为' . $minutes . '分钟,请尽快验证。';
},
为了解决该问题,按照配置中的提示,修改为以下代码即可:
'content' => Toplan\Sms\SmsManager::closure(function ($code, $minutes, $input) {
return '【signature】您的验证码是' . $code . ',有效期为' . $minutes . '分钟,请尽快验证。';
}),
注意: 提示中的单词 Manager
拼错了,少写了一个 a
!
余下配置中还有其他的闭包函数,使用相同的方法修改。