получить текущее имя пользователя в файле маршрута laravel без передачи из контроллера

Здравствуйте, я хочу знать, как я могу получить доступ к текущему имени пользователя в моем файле маршрута laravel? Я хочу добавить текущее имя пользователя в качестве префикса в моем URL, но я не хочу передавать имя пользователя в качестве параметра для каждого вызова маршрута, потому что проект уже завершен, поэтому это сложная и трудоемкая задача. поэтому, пожалуйста, предложите, как я могу получить текущее имя пользователя.
Вот мой код:

Route::prefix(/Auth::user()->name)->group(function () {
Route::get('/test', 'HomeController@test')->name('test');
});

<a href="{{route('test')}}">

Заранее спасибо.

Примечание: — Я не хочу передавать имя пользователя из шаблонов или контроллера, потому что это сложно и требует много времени, так как проект уже сделан.

0

Решение

Вы не можете передать пользователя 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'));
}
}
0

Другие решения

Маршруты регистрируются до инициализации сеанса. Таким образом, вы не можете получить доступ к аутентифицированному пользователю в файле маршрутов.

Таким образом, вы должны зарегистрировать новые маршруты с фиктивным префиксом имени пользователя, как,

Route::prefix('{username}')->group(function () {
Route::get('/test', 'HomeController@index');
});

Просто добавьте параметр {username} & Не нужно нигде использовать. Сохраните эту группу маршрутов в конце файла маршрутов.

Повторно сгенерируйте ваши маршруты как,

<a href="{{ url(auth()->user()->name . '/test') }}">
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector