用于检查多行的验证规则

时间:2016-03-30 13:39:50

标签: laravel laravel-5

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

我的表格如下:

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'); } ,但是我无法将此逻辑转换为验证规则:

Function strOut(strIn As String) As String
    Dim objRegex As Object
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
        .Pattern = "^P\d+$"
        strOut = .Test(strIn)
    End With
End Function

1 个答案:

答案 0 :(得分:0)

您需要创建自定义验证并传递要检查的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,