我有一个接收以下POST请求的控制器:
{
"_token": "csrf token omitted",
"order": [1,2,3,4,5,6,7,8]
}
如何使用验证器确保order
中的元素是唯一的,并且在1到7之间?我尝试过以下方法:
$this->validate($request, [
'order' => 'required|array',
'order.*' => 'unique|integer|between:1,7'
]);
检查第一个子句,即使输入无效,也会通过第二个子句。
答案 0 :(得分:5)
<强>不同强>
使用数组时,验证字段不得包含任何数组 重复值。
在您的情况下,它可能如下所示:
$this->validate($request, [
'order' => 'required|array',
'order.*' => 'distinct|integer|between:1,7'
]);
答案 1 :(得分:1)
unique
validator关键字用于检查数据库中值的重复项。
您应该在这种情况下使用自定义验证器。
请参阅:https://laravel.com/docs/5.1/validation#custom-validation-rules