laravel, если запрос-имя пользователя в блейде

#php #mysql #laravel

Вопрос:

У меня есть простой URL /игроки/ИМЯ ПОЛЬЗОВАТЕЛЯ для просмотра профиля пользователя. Я хочу вставить что-то только на страницу профиля пользователя. Потому что в профиле пользователя появились другие ссылки. Пример:

 @if (Request::is('players/{{ $user->slug }}'))
@include('users::stats') 
@endif
 

Но ничего не получай. Есть идеи, что случилось? Спасибо!

Комментарии:

1. Я думаю, что это было бы что-то вроде @if(Route::is('prayer.show', ['user' => $user->slug])) того, где parayer.show находится название вашего маршрута и user является ли он параметром

2. @Espresso спасибо за ответ. Мне это нравится: @if(Route::is('users.show', ['user' => $user->slug])) @include('users::stats') @endif по-прежнему ничего. Мой маршрут: ModuleRoute::resource('users', 'UsersController', ['only' => ['index', 'show', 'edit', 'update']]); ModuleRoute::get('players/{slug}', 'UsersController@show');

Ответ №1:

Я не думаю, что это необходимо с вашей точки зрения. Request::is У вас должен быть маршрут, определенный в вашем web.php файле, чтобы зафиксировать этот шаблон, означающий, что вы уже знаете, что конечный пользователь включен players/{username} .

web.php

 Route::get('/players/{slug}', [
    PlayerController::class, 'show'
])->name('players.show');
 

PlayerController.php

 public function show($slug)
{
    $user = User::where('username', $slug')->firstOrFail();

    return view('players.show', compact('user'));
}
 

Вид лезвия (players/show.blade.php)

 // some stuff

@include('users.stats')

// some other stuff
 

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