Не необходимость останется, а в данный момент ты используешь мое решение и сам не знаешь зачем поставил знак вопроса в префикс и выбрал его ответом
'where' => ['locale' => '^ru|en$']
'prefix' => '{locale?}'
GET|HEAD
{locale}/password/reset/{token}
password.reset
App\Http\Controllers\Auth\ResetPasswordController@showResetForm
web
Где в коде генерация роута на сброс пароля? Если раньше она выполнялась дефолтным способом, то теперь тебе надо делать это самому.
/**
* Register the typical reset password routes for an application.
*
* @return void
*/
public function resetPassword()
{
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update');
}
/**
* Send a reset link to the given user.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
public function sendResetLinkEmail(Request $request)
{
$this->validateEmail($request);
// We will send the password reset link to this user. Once we have attempted
// to send the link, we will examine the response then see the message we
// need to show to the user. Finally, we'll send out a proper response.
$response = $this->broker()->sendResetLink(
$this->credentials($request)
);
return $response == Password::RESET_LINK_SENT
? $this->sendResetLinkResponse($request, $response)
: $this->sendResetLinkFailedResponse($request, $response);
}
т.е. вот эту строчку ... изменил не ты? Или изменил, но не понял, что сделал?
Route::group([
'prefix' => '{locale}',
'where' => ['locale' => '[a-zA-Z]{2}'],
'middleware' => 'setlocale'
], function () {
Route::get('/', function () {
return view('index');
});
Auth::routes();
});
<form method="POST" action="{{ route('password.email', ['locale' => $locale, 'token' => csrf_token()]) }}" class="auth_login">
public function boot()
{
Route::pattern('url_lang', '^(ru|en)$');
parent::boot();
}
Route::group(['middleware' => ['web']], function() {
Route::get('{url_lang}/login', ['as' => 'login', 'uses' => 'Auth\LoginController@showLoginForm']);
});
public function showLoginForm($url_lang = null)
{
return view('login')->with('url_lang', $url_lang);
}
<a class="nav-link" href="{{ route('login', $url_lang) }}">{{ __('Login') }}</a>
LOG.error: View [login] not found. {"exception":{}}
Обсуждаем проблему, которая относится к ошибке Missing required parameters for [Route: password.reset] [URI: {locale}/password/reset/{token}]
Спасибо за варианты. Всё это в любом случае полезно и интересно. По крайней мере мне. Ваш вариант рассматриваю сейчас более подробно. Это можно будет обсудить в отдельной теме, если возникнут проблемы с решением.