Laravel带有switch语句的表单请求验证

时间:2018-12-28 18:28:02

标签: laravel

我有一个Laravel应用程序,并且正在使用表单请求验证。

我已经实现了以下内容:

 public function rules(){
      return [
            'item_name'=>'required',
            'item_description'=> 'required',
        ];
    }

在控制器中,我有以下内容:

public function storeItem(storeItem $request) {
        $validated = $request->validated();
         ...
         ...     

        }
    }

这正常工作,但是因为对于某些项目,并非所有$ request变量都是必需的,所以我想实现如下switch语句:

public function rules()
{
    $item_type = $this->route('item_type');
    switch($item_type) {
        case 'type1':
             return [
                'item_name'=>'required',
                'item_description'=> 'required',
            ];
            break;
         case 'type2':
             return [
                'item_name'=>'required',
                'item_amount'=> 'required',
                'item_favorite'=> 'required',
            ];
            break;
    }
}

我回来了以下错误:

  

传递给Illuminate \ Validation \ Factory :: make()的参数2必须为   类型数组,给定null

此错误消息似乎表明我没有返回数组,但是每个开关的情况下确实有return语句,所以不确定为什么我看到此eeror消息。

有什么想法可以解决吗?如果switch语句不是一个好的选择,还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

这是解决方案:

from sklearn.preprocessing import KBinsDiscretizer

myData = pd.read_csv("train.csv", delimiter=",")
target = myData.iloc[:,-5]  # this is a continuous data which must be 
                        # converted into bins with a new column.

xx = target.values.reshape(21263,1)

est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
s = est.fit(xx) 
Xt = est.transform(s)