【发布时间】:2015-04-14 08:21:14
【问题描述】:
我正在使用dwightwatson/validating 包在模型中创建验证规则。
我特别喜欢您可以为不同路线创建的自定义规则集。
型号
protected $rulesets = [
'set_up_all' => [
'headline' => 'required|max:100',
'description' => 'required'
],
'set_up_property' => [
'pets' => 'required'
],
'set_up_room' => [
'residents_gender' => 'required',
'residents_smoker' => 'required'
],
'set_up_roommate' => [
'personal_gender' => 'required',
'personal_smoker' => 'required'
]
];
控制器
$post = new Post(Input::all());
if($post->isValid('set_up_all', false)) {
return 'It passed validation';
} else {
return 'It failed validation';
}
在上面的示例中,它可以很好地针对 set_up_all 规则集进行验证。现在我想组合几个规则集并一起验证它们。
根据文档,该软件包提供了merge rulesets 的方法。我只是不知道如何将提供的示例集成到我当前的流程中。
根据文档,我需要实现这一行:
$mergedRules = $post->mergeRulesets('set_up_all', 'set_up_property_room', 'set_up_property');
这是我的尝试,但没有成功:
if($mergedRules->isValid()) { ...
我收到以下错误:
调用数组上的成员函数isValid()
我也试过这个,但也没有用:
if($post->isValid($mergedRules)) { ...
我收到以下错误:
array_key_exists():第一个参数应该是字符串或者整数
关于如何实施合并规则集有什么建议吗?
【问题讨论】:
-
我相信该方法被命名为
mergeRules()而不是mergeRulesets() -
当我尝试 mergeRules() 时,我收到以下错误:“调用未定义的方法 Illuminate\Database\Query\Builder::mergeRules()”。你为什么认为会这样?
标签: php validation laravel package validationrules