Как проверить, является ли текущий URL-адрес верхней страницей в лезвии laravel? - PullRequest
0 голосов
/ 05 мая 2020

Я хочу изменить тег заголовка, только если текущий URL-адрес является верхней страницей. поэтому я написал на лезвии:

@if (\Request::is('/*'))
<title>You are on the article page</title>
@else
<title>You are on the top page</title>
@endif

и несколько аналогичных способов, которые я пробовал, но не сработал.

[Дополнительная информация]

Я пытаюсь:

https://example.com/ -> top page

https://example.com/?keyword=* ->article page

Что делать в этом случае? Спасибо.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Я думаю, вы можете использовать имя маршрута https://laravel.com/docs/7.x/routing#named -routes

Пример:

@if (@if(request()->route()->getName()) === 'top')
<title>You are on the top page</title>
@else
<title>You are on the article page</title>
@endif
0 голосов
/ 05 мая 2020

Стандартный способ проверки текущего URL-адреса: :

url()->current()

Однако из вашего кода похоже, что вы используете строку запроса для отображения разных страниц, поэтому все (или как минимум более 1) страниц будут иметь одинаковый URL. Поэтому вам нужно объединить этот тест с тестом строки запроса. Вы можете проверить строку запроса с помощью :

$request->query('keyword')

, к которому вы можете получить доступ в представлении, используя request() помощник :

request()->query('keyword')

Итак, для кода заголовка вы можете использовать что-то вроде:

@if (url()->current() === '/' && empty(request()->query('keyword'))
    <title>You are on the top page</title>
@elseif (url()->current() === '/' && request()->query('keyword') === 'something')
    <title>You are on the article page</title>
@endif
...