Laravel 用于检查多行的验证规则

Laravel 用于检查多行的验证规则,laravel,laravel-5,Laravel,Laravel 5,更新位置名称时,我需要验证以检查表中的多行,而不仅仅是单个id 我的桌子看起来像这样: +----+--------------+-----------+----------+ | id | name | lat | lng | +----+--------------+-----------+----------+ | 1 | Location One | 53.348333 | 0.348333 | | 2 | Location One | 57.3

更新位置名称时,我需要验证以检查表中的多行,而不仅仅是单个id

我的桌子看起来像这样:

+----+--------------+-----------+----------+
| id |     name     |    lat    |   lng    |
+----+--------------+-----------+----------+
|  1 | Location One | 53.348333 | 0.348333 |
|  2 | Location One | 57.348222 | 0.348222 |
|  3 | Location One | 57.348111 | 0.545454 |
|  4 | Location Two | 55.348554 | 0.555444 |
|  5 | Location Two | 56.348667 | 0.348333 |
|  6 | Location Two | 56.348778 | 0.111111 |
+----+--------------+-----------+----------+
创建新位置按预期工作。但我不确定如何设置验证规则以排除我尝试更新的当前位置-它需要对照“name”列进行检查

我希望这样的事情可能会奏效,但事实并非如此

public function rules()
{
    return [
        'name' => 'required|max:255|unique:evac_routes,name,'.$this->name,
         ...
    ];
}
在我的控制器中,我使用的是
Route::where('name',$Route->name)->update
,这很有效,但我无法将此逻辑转换为验证规则:

public function update($id, UpdateRouteRequest $request)
    {

        $route = Route::findOrFail($id);    

        $updateRows = Route::where('name', $route->name)->update([
            'name' => $request->name,
            ...
            ]);            

        return redirect('routes');    

    }

您需要创建自定义验证并传递要检查的ID数组,例如:

public function multipelvalidation()
{
    Validator::extend('multipel', function ($attribute, $value) {
       //check validation here and return true or false
    });
}

//... and use your rule in validation like below:

'name' => 'required|multipel|max:255|unique:evac_routes,name,'.$this->name,