Laravel 验证 - 如何检查给定数组中是不是存在值?
Posted
技术标签:
【中文标题】Laravel 验证 - 如何检查给定数组中是不是存在值?【英文标题】:Laravel Validation - How to check if a value exists in a given array?Laravel 验证 - 如何检查给定数组中是否存在值? 【发布时间】:2016-07-24 14:38:00 【问题描述】:所以,好吧,我从验证文档中尝试了很多规则,但都给了我同样的错误提示
数组到字符串的转换
这是我添加数组的方法:
$this->validate($request,[
'employee' => 'required|in:'.$employee->pluck('id')->toArray(),
],[
'employee.in' => 'employee does not exists',
]);
关于如何实现这一点的任何提示?
我创建了一个自定义验证器,但似乎仍然无法传递数组
【问题讨论】:
这适用于 laravel 5 是的,我在标签中也提到过 【参考方案1】:将数组作为字符串插入并用逗号连接。
'employee' => 'required|in:'.$employee->implode('id', ', '),
这将使验证器在进行in
比较时得到正确的逗号分隔字符串。
编辑
这仍然有效,但不再是 Laravelesque 的方式了。请参阅@nielsiano 的答案。
【讨论】:
【参考方案2】:更新:您现在可以使用 Rule 类,而不是按照正确答案中的说明自行分解值。只需这样做:
['someProperty' => ['required', Rule::in(['needed', 'stuff'])]];
如文档中“验证数组”部分所述:https://laravel.com/docs/5.6/validation#validating-arrays
【讨论】:
这是一种更简洁的方法。这里是 link 在 laravel 8 中的文档。以上是关于Laravel 验证 - 如何检查给定数组中是不是存在值?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 和 jwt-auth。如何检查用户电子邮件是不是经过验证
如何在 Laravel 和 Vue.js 中使用 jwt-auth 检查用户是不是经过身份验证
如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?