我尝试了解决此问题的所有方法,例如清除缓存,编辑器更新/安装,但在php artisan config:cache
之后,它再次出现。
在config.php第839行:
调用未定义的方法Illuminate \ Validation \ Rules \ In :: __ set_state()
整页翻页为空白页。 在 bootstrap / cache / config.php 文件中显示:
'environment' =>
array (
'form' =>
array (
'rules' =>
array (
'app_name' => 'required|string|max:50',
'environment' => 'required|string|max:50',
'environment_custom' => 'required_if:environment,other|max:50',
'app_debug' =>
array (
0 => 'required',
1 =>
Illuminate\Validation\Rules\In::__set_state(array(
'rule' => 'in',
'values' =>
array (
0 => 'true',
1 => 'false',
),
)),
),
答案 0 :(得分:2)
我认为你有一些带有验证规则的配置文件。验证您是否有config/environment.php
个文件或验证其他配置文件。
我想其中一个你有:
Rule::in([true, false]);
你不应该在配置文件中使用这种语法,因为它不能被缓存,而应该使用:
'in:1,0'
但是在配置文件中保留任何验证规则似乎很奇怪。
答案 1 :(得分:2)
只需删除文件config.php
来自bootstrap / cache /
然后运行
command composer dumpautoload
比
php artisan config:cache
对我有用
答案 2 :(得分:2)
这是laravel/framework/src/Illuminate/Validation
软件包的问题。
在Rules
文件夹中,我们有一个名为In
的类(文件In.php
)
缺少功能__set_state
。
如果您要在此类中添加以下功能,
static public function __set_state($array = []){
return 'boolean';
}
问题将得到解决。另外,这是临时解决方案( composer install / update命令可以删除您的功能)
享受...
答案 3 :(得分:1)
我也遇到了此错误,因为我输入的不是“ Illuminate \ Validation \ Rule” “ Illuminate \ Contracts \ Validation \ Rule”
答案 4 :(得分:0)
使用Rule::in([true, false]);
更改'in:1,0'
对我有用。我需要在bootstrap / cache / config.php中删除对Rule类的所有奇怪引用。
答案 5 :(得分:0)
仅删除文件
config.php
来自
引导程序/缓存/
然后运行命令composer dumpautoload
比php artisan config:cache