Проверьте подстановочные маршруты в Laravel 5

Проверьте подстановочные маршруты в Laravel 5

16.12.2016 01:07:55 Просмотров 32 Источник

В blade, если мы хотим проверить, совпадает ли текущий маршрут с маршрутом или нет, мы можем просто использовать:

@if(Route::currentRouteName() == 'parameter')
{{ 'yes' }}
@else
{{ 'no' }}
@endif

Но что, если мы хотим сопоставить его с подстановочным знаком, например:

@if(Route::currentRouteName() == 'parameter.*')
{{ 'yes' }}
@else
{{ 'no' }}
@endif

Есть ли какое-то решение для этого?

Я попробовал " * "и": любой", но это не сработало.

Примечание: Я хочу проверить маршрут,а не URL.

Любая помощь будет оценена по достоинству.

Спасибо,

Парф Вора

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

Ответы - Проверьте подстановочные маршруты в Laravel 5 / Check wildcard routes in Laravel 5

Является ответом!
Rajender Joshi

16.12.2016 01:22:33

Использовать фреймворк Laravel по строке вспомогательные функции

str_is('parameter*', Route::currentRouteName())

Он вернет true для любой строки, которая начинается с parameter

https://stackoverflow.com/questions/41181885/check-wildcard-routes-in-laravel-5/41182166#comment69564670_41182166
Спасибо, похоже, что нет другого выхода, кроме сравнения строк.
Ndirangu Waweru

08.11.2019 04:00:18

У меня была та же проблема. Я хотел переключить активный класс на основе URI.

В blade (Laravel 6x), я сделал:

(request()->is('projects/*')) ? 'active' : ''
Avadanei Danut

13.01.2020 04:56:17

Вы также можете использовать инструкции Blades Custom If и написать что-то подобное в своем AppServiceProvider.php:

public function boot()
{
    Blade::if('route', function ($route) {
        return Str::is($route, Route::currentRouteName());
    });
}

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

<li @route('admin.users*') class="active" @endroute>
    <a href="{{ route('admin.users.index') }}">Users</a>
</li>
Закрыть X