Validation Laravel(5.3.24+;)验证:验证2列

Validation Laravel(5.3.24+;)验证:验证2列,validation,laravel-5.3,Validation,Laravel 5.3,使用新风格的laravel验证,如下所示: 我希望名称栏是必需的&仅在比赛中是唯一的 使用下表示例, id 3:验证应该阻止这种情况发生,因为“该竞争已经存在一个名称” 自定义规则 最好的解决方案是为此创建一个函数,该函数接受具有相应竞争id的字段作为参数 差不多 //Calling the custom rule like this ['name' => 'required|validateName:yourCompetitionIdFormFieldHere']; 在服务提供商中声明

使用新风格的laravel验证,如下所示:

我希望名称栏是必需的&仅在比赛中是唯一的

使用下表示例, id 3:验证应该阻止这种情况发生,因为“该竞争已经存在一个名称”

自定义规则 最好的解决方案是为此创建一个函数,该函数接受具有相应竞争id的字段作为参数

差不多

//Calling the custom rule like this
['name' => 'required|validateName:yourCompetitionIdFormFieldHere'];
在服务提供商中声明自定义验证函数,如下所示

Validator::extend('validateName', function ($attribute, $value, $parameters, $validator) {
   $competitionId = ($validator->data, $parameters[0]);

   //Now check if the $value is already set for the specific competition_id by using normal database queries and comparison
  return count(Team::where("comeptition_id", "=", $competitionId)->whereName($value)->get()) == 0
});

这是什么意思 自定义验证规则接收您通过函数提供的字段数据(在上面的代码中,它是
YourCompetitionFormFieldHere
),因此它知道用户选择了哪个联赛/比赛id。有了这些信息,您现在可以检查输入的id是否已经有类似的ame