#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
Обратите внимание, что я назвал методы и файлы на основе того, что вы предоставили, вам нужно будет изменить их, чтобы они были такими, какими они есть в вашем проекте.