Wenn ich Ortsnamen aktualisiere, brauche ich eine Validierung, um mehrere Zeilen in der Tabelle zu überprüfen, nicht nur eine einzelne ID.Validierungsregel, die auf mehrere Zeilen überprüft werden soll
Meine Tabelle sieht wie folgt aus:
+----+--------------+-----------+----------+
| 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 |
+----+--------------+-----------+----------+
Erstellen von neuen Standorten wie erwartet funktioniert. Aber ich bin mir nicht sicher, wie ich die Validierungsregel einstellen soll, um den aktuellen Standort auszuschließen, den ich zu aktualisieren versuche - er muss die Spalte "Name" überprüfen.
Ich hatte gehofft, dass so etwas funktionieren könnte - aber das tut es nicht.
public function rules()
{
return [
'name' => 'required|max:255|unique:evac_routes,name,'.$this->name,
...
];
}
In meinem Controller Ich verwende Route::where('name', $route->name)->update
, die funktioniert, aber ich kann diese Logik auf die Gültigkeitsregel nicht konvertieren:
public function update($id, UpdateRouteRequest $request)
{
$route = Route::findOrFail($id);
$updateRows = Route::where('name', $route->name)->update([
'name' => $request->name,
...
]);
return redirect('routes');
}