Added place edit function

This commit is contained in:
amikhaylov
2026-05-19 17:53:53 +03:00
parent 24fe78ce52
commit 08cb7ef9c0
5 changed files with 224 additions and 16 deletions
+23 -8
View File
@@ -60,22 +60,37 @@ class PlacesController extends Controller
return str_replace([',',' '], ['|',''], $gps);
}
public function edit(Place $place): VIEW
public function edit(int $id): VIEW
{
$place = Place::find($id);
return view('places.edit', compact('place'));
}
public function update(Request $request, Place $place): Redirector|RedirectResponse
public function update(Request $request, int $id)
{
$data = $request->validate([
'name' => 'required|string|max:255',
'lat' => 'required|numeric',
'lng' => 'required|numeric',
// Очистка телефона от маски перед валидацией
if ($request->filled('phone')) {
$request->merge(['phone' => preg_replace('/\D/', '', $request->phone)]);
}
$validated = $request->validate([
'name' => 'required|max:512',
'address' => 'nullable|max:512',
'phone' => 'nullable|digits:11',
'gps' => [
'nullable',
'regex:/^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$/'
],
'url' => 'nullable|url|max:255',
'description' => 'nullable',
]);
$place->update($data);
$place = Place::findOrFail($id);
$place->update($validated);
return redirect()
->route('places.index')
->with('status', 'Обновлено!');
->with('success', 'Данные обновлены');
}
public function delete(int $id): Redirector|RedirectResponse