#php #forms #laravel #laravel-5 #laravel-5.3
#php #формы #laravel #laravel-5 #laravel-5.3
Вопрос:
В настоящее время я занимаюсь загрузкой изображений в Laravel-5.3. Маршруты моей «страницы профиля» определяются как:
/* GET request to show the profile page */
Route::get('/{username}', [
'uses' => 'AppHttpControllersProfileController@getProfile',
'as' => 'profile.index',
]);
/* POST request to update the Avatar (display pic) */
Route::post('/{username}', [
'uses' => 'AppHttpControllersProfileController@updateAvatar',
'as' => 'profile.index',
]);
Таким образом, URL профиля в значительной степени выглядит как example.com/john
(пусть «john» будет именем пользователя)
Однако в форме я должен определить «действие».
<form enctype="multipart/form-data" action="" method="POST">
Как я могу определить маршрут в действии формы, чтобы пользователи перенаправлялись на свои собственные соответствующие маршруты; что-то вроде « example.com/john
«.
Я предполагаю, что я не могу напрямую определить, <form action="/{username}">
к example.com/{username}
чему я перейду вместо этого.
Комментарии:
1. у вас есть 2 маршрута с одинаковым именем маршрута.
Ответ №1:
Поскольку вы присваиваете имя маршруту, вы можете использовать это имя для определения URL-адреса через помощник route(), передавая массив параметров в качестве второго аргумента.
<form enctype="multipart/form-data"
method="POST"
action="{{ route('profile.index', [
'username' => Auth::user()->name
]) }}">
Ответ №2:
Если вам нужен маршрут для текущего пользователя, вы можете сделать что-то вроде:
<form enctype="multipart/form-data" action="{{ url(Auth::user()->name) }}" method="POST">
UPD: для именованного маршрута вы можете использовать route
помощник
<form enctype="multipart/form-data" action="{{ route('profile.index', ['username' => 'username_here']); }}" method="POST">