Здравствуйте, я хочу знать, как я могу получить доступ к текущему имени пользователя в моем файле маршрута laravel? Я хочу добавить текущее имя пользователя в качестве префикса в моем URL, но я не хочу передавать имя пользователя в качестве параметра для каждого вызова маршрута, потому что проект уже завершен, поэтому это сложная и трудоемкая задача. поэтому, пожалуйста, предложите, как я могу получить текущее имя пользователя.
Вот мой код:
Route::prefix(/Auth::user()->name)->group(function () {
Route::get('/test', 'HomeController@test')->name('test');
});
<a href="{{route('test')}}">
Заранее спасибо.
Примечание: — Я не хочу передавать имя пользователя из шаблонов или контроллера, потому что это сложно и требует много времени, так как проект уже сделан.
Вы не можете передать пользователя Auth из маршрутов / web.php, вам нужно передать параметр в вашем маршруте.
Route::group(['middleware'=>'auth','prefix'=>'/'],function () {
Route::get({username}, 'HomeController@test');
});
в вашем контроллере:
public function test(Request $request,$username){
$user=User::where('name',$username)->first();
if($user){
return response()->json((array('status'=>'success','user'=>$user));
}else{
return response()->json(array('status'=>'error','message'=>'user not found'));
}
}
Маршруты регистрируются до инициализации сеанса. Таким образом, вы не можете получить доступ к аутентифицированному пользователю в файле маршрутов.
Таким образом, вы должны зарегистрировать новые маршруты с фиктивным префиксом имени пользователя, как,
Route::prefix('{username}')->group(function () {
Route::get('/test', 'HomeController@index');
});
Просто добавьте параметр {username}
& Не нужно нигде использовать. Сохраните эту группу маршрутов в конце файла маршрутов.
Повторно сгенерируйте ваши маршруты как,
<a href="{{ url(auth()->user()->name . '/test') }}">