【问题标题】: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
  • 是的,我在标签中也提到过

标签: php arrays validation laravel laravel-5.2


【解决方案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 中的文档。
    猜你喜欢
    • 2020-08-03
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多