我有一个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语句不是一个好的选择,还有其他想法吗?
答案 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)