2016-03-30 37 views
2

Konum adlarını güncelleştirirken, yalnızca tek bir kimlik için değil, tablodaki birden çok satıra karşı denetlemek için doğrulamaya ihtiyacım var.Birden çok satıra karşı denetleme geçerlilik kuralı

Benim tablo şöyle görünür: beklendiği gibi yeni yerler oluşturma

+----+--------------+-----------+----------+ 
| 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 | 
+----+--------------+-----------+----------+ 

çalışır. Ancak, güncellemeyi denediğim geçerli konumu hariç tutmak için doğrulama kuralını nasıl ayarlayacağımı bilmiyorum - 'ad' sütununa karşı kontrol edilmesi gerekiyor.

Böyle bir şeyin işe yarayacağını umuyordum - ama değil. Benim denetleyicisi olarak

public function rules() 
{ 
    return [ 
     'name' => 'required|max:255|unique:evac_routes,name,'.$this->name, 
     ... 
    ]; 
} 

ben çalışır Route::where('name', $route->name)->update, kullanıyorum ama doğrulama kuralına bu mantık dönüştüremeyiz:

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

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

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

     return redirect('routes');  

    } 

cevap

0

Eğer custome doğrulama oluşturmak ve kimlikleri dizisi geçmesi gerekiyor gibi kontrol edilmek istenen gibi:

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, 
İlgili konular