我在laravel中有一个数据透视表,它有一些额外的数据。
我一直在环顾四周,找不到用于验证数据的机制,而不是自己写一个。但如果已经存在现有的那个,那将重新发明轮子。
我知道如何将laravel验证应用到数据透视表中吗?
谢谢!
答案 0 :(得分:0)
Laravel的Validator采用字段和规则来检查作为简单关联数组的字段。您 apply 与表单数据完全相同。所以,考虑一下这种逻辑:
$user = App\User::find(1);
foreach ($user->roles as $role) {
$field = array('rolename' = > $role->pivot->name);
$rule = array('rolename' => 'required|alpha');
$validator = Validator::make($field, $rule);
if ($validator->fails()) {
// Handle the validation error...
}
}
我发现这种方法存在两个问题:首先,验证器在循环中运行,如果需要验证大量的数据透视表项,这可能是性能问题。其次,我真的认为你应该在存储它们之前验证之前的数据透视表项。
可能有一种方法可以一次获得所有的数据透视表项,没有循环,但我不确定那个。