Laravel验证 - 如何检查给定数组中是否存在值?

时间:2016-04-04 21:19:41

标签: php arrays validation laravel laravel-5.2

所以,好吧我从验证文档中尝试了很多规则,但都给了我同样的错误说

  

数组到字符串转换

以下是我添加数组的方法:

$this->validate($request,[
                'employee' => 'required|in:'.$employee->pluck('id')->toArray(),
            ],[
                'employee.in' => 'employee does not exists',
            ]);

有关如何实现这一目标的任何提示?

我创建了一个自定义验证器但仍然传递数组似乎不可能

2 个答案:

答案 0 :(得分:14)

将数组内嵌为字符串并以逗号连接。

'employee' => 'required|in:'.$employee->implode('id', ', '),

这将使得验证者在进行in比较时所期望的字符串正确。

答案 1 :(得分:5)

更新:您现在可以使用Rule类,而不是按照正确答案中的描述自行插入值。只需:

['someProperty' => ['required', Rule::in(['needed', 'stuff'])]];

正如验证阵列中提到的那样。文档中的部分:https://laravel.com/docs/5.6/validation#validating-arrays