У меня проблемы с получением правильного языкового параметра в URL при отправке формы.
Мое приложение имеет два возможных языковых параметра: de
и en
.
Я сделал промежуточное программное обеспечение setLocale.php с этой функцией:
public function handle($request, Closure $next)
{
$locale = $request->segment(1);
app()->setLocale($locale);
return $next($request);
}
это маршрут в web.php:
Route::post('/{locale?}/ticket', 'TicketController@store')->name('validation');
и вот форма действия:
<form method="post" action="{{ route('validation') }}">
Когда я хочу отправить форму, и ввод подтвержден, вы должны перейти по маршруту, который я вам показал выше.
Но URL будет только: /ticket
вместо en/ticket
или de/ticket
.
Кстати, вы попадаете на сайт формы по ссылкам, поэтому параметры языка статичны:
Route::get('/en/index/{param1?}/{param2?}', 'TicketController@index')->name('index');
Route::get('/de/index/{param1?}/{param2?}', 'TicketController@index')->name('index');
Как получить параметр языка со страницы формы ('/ ru / index / [..]') в URL страницы проверки, следовательно, в действии формы?
Разве функция handle
в промежуточном программном обеспечении setLocale.php
не может получить языковой параметр при попытке отправить форму?
Если да, как я могу добиться передачи его на следующую страницу (через действие формы)?
EDIT
Работает нормально, когда я редактирую действие формы следующим образом:
<form method="post" action="{{ route('validation', app()->getLocale()) }}">
Это было бы хорошим решением?