Laravel - проверьте, есть ли маршруты на Блейде


Laravel - проверьте, есть ли маршруты на Блейде

04.02.2020 01:20:19 Просмотров 34 Источник

Мне нужно проверить 2 маршрута, и если один из них верен, добавьте немного контента

@if (Route::current()->uri() != '/' || Route::current()->uri() != 'login')<div>add some content some contnt </div> @endif

Я пробовал с '||' и 'или' и 'или'. Я также пробовал с Request::path(), который работает только при проверке 1 маршрута

@if (Route::current()->uri() != '/') <div>add some content some contnt </div> @endif

Если я попробую 2 маршрута, то это, похоже, не сработает

У вопроса есть решение - Посмотреть?

Ответы - Laravel - проверьте, есть ли маршруты на Блейде / Laravel - check if routes on blade

Mohammed Aktaa

04.02.2020 02:06:56

Вам нужно сделать свое условие правильным, потому что вы сравниваете url и строку. Попробуйте это плз:

URL::current() != url('/')

Mohammed Radwan

04.02.2020 02:12:11

Вместо этого я бы использовал имена маршрутов и in_array...

В вашем web.php

Route::get('/', ...)->name('home');
Route::get('/login', ...)->name('login');

Тогда вы можете сделать что-то вроде этого

in_array(Route::currentRouteName(), ['home', 'login'])
Piazzi

04.02.2020 03:15:08

Попробуйте вместо этого использовать названия маршрутов. В вашем web.php файл поставь вот так:

Route::get('/')->name('home');
Route::get('/login')->name('login');

А потом изменить, если условия для этого:

@if (Route::currentRouteName() != 'home' || Route::currentRouteName() != 'login')
<div>add some content some contnt </div> 
@endif
Raja Khoury

08.10.2020 08:16:49

Вы можете использовать встроенные методы для проверки имени маршрута или шаблона.

См. Route::is() или Route::currentRouteNamed()

Например:

Route::get('users', 'Controller..')->name('users.index');
Route::get('users/{id}', 'Controller..')->name('users.show');

Предполагая, что вы находитесь в следующем пути : users/1

@if(Route::is('users.show') )
    // true
@endif

@if(Route::is('users') )
    // false
@endif

@if(Route::is('users.*') )
    // true
@endif

Итак, в вашем примере попробуйте @if(Route::is('home') or Route::is('login'))..@endif

Помочь в развитии проекта:
Закрыть X