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如何验证一行中的数据,而不是检查整个表

如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?

当所有检索值在laravel中具有相同的会话键时,如何检查会话数组是不是具有唯一的ID

Laravel 检查给定 url 的路由是不是存在于路由中