调用未定义的方法Illuminate \ Validation \ Rules \ In :: __ set_state()

时间:2017-12-20 15:50:41

标签: php laravel laravel-5 laravel-5.5 laravel-validation

我尝试了解决此问题的所有方法,例如清除缓存,编辑器更新/安装,但在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',
              ),
            )),
          ),

6 个答案:

答案 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