Как получить текущий URL внутри оператора @if (Blade) в Laravel 4?

Я использую Laravel 4. Я хотел бы получить доступ к текущему URL-адресу внутри условия @if в представлении, используя шаблонизатор Laravel Blade, но я не знаю, как это сделать.

Я знаю, что это можно сделать, используя что-то вроде <?php echo URL::current();?> <?php echo URL::current();?> но это невозможно внутри оператора @if blade.

Какие-либо предложения?

+232
источник поделиться
26 ответов

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

@if(Request::url() === 'your url here')
    // code
@endif

Laravel предлагает метод, чтобы узнать, соответствует ли URL шаблону или нет

if (Request::is('admin/*'))
{
    // code
}

Проверьте соответствующую документацию для получения различной информации о запросе: http://laravel.com/docs/requests#request-information

+327
источник

Вы также можете использовать Route::current()->getName(), чтобы проверить имя маршрута.

Пример: routes.php

Route::get('test', ['as'=>'testing', function() {
    return View::make('test');
}]);

Вид:

@if(Route::current()->getName() == 'testing')
    Hello This is testing
@endif
+80
источник
другие ответы

Связанные вопросы


Похожие вопросы

Возможно, вам стоит попробовать:

<li class="{{ Request::is('admin/dashboard') ? 'active' : '' }}">Dashboard</li>
+62
источник

Я бы сделал это следующим образом:

@if (Request::path() == '/view')
    // code
@endif

где '/view' - это имя вида в routes.php.

+47
источник

Чтобы получить current url в режиме просмотра blade вы можете использовать следующее,

<a href="{{url()->current()}}">Current Url</a>

Так как вы можете сравнить, используя следующий код,

@if (url()->current() == 'you url')
    //stuff you want to perform
@endif
+26
источник

Это помогает мне для активного активного класса bootstrap в Laravel 5.2:

<li class="{{ Request::path() == '/' ? 'active' : '' }}"><a href="/">Home</a></li>
<li class="{{ Request::path() == 'about' ? 'active' : '' }}"><a href="/about">About</a></li>
+22
источник

Немного стар, но это работает в L5:

<li class="{{ Request::is('mycategory/', '*') ? 'active' : ''}}">

Это захватывает и /mycategory и /mycategory/slug

+17
источник

Я лично не пробовал бы захватить его внутри представления. Я не удивляюсь Laravel, но я бы предположил, что вам нужно отправить свой маршрут на контроллер, а затем в контроллер передать переменную (через массив) в ваше представление, используя что-то вроде $url = Request::url();.

Один способ сделать это в любом случае.

EDIT: На самом деле посмотрите на метод выше, возможно, лучший способ.

+13
источник

Laravel 5.4

Глобальные функции

@if (request()->is('/'))
    <p>Is homepage</p>
@endif
+13
источник

Простая навигационная панель с бутстрапом может быть выполнена как:

    <li class="{{ Request::is('user/profile')? 'active': '' }}">
        <a href="{{ url('user/profile') }}">Profile </a>
    </li>
+10
источник

Самый простой способ - использовать: Request::url();

Но здесь сложный способ:

URL::to('/').'/'.Route::getCurrentRoute()->getPath();
+8
источник

Есть два способа сделать это:

<li{!!(Request::is('your_url')) ? ' class="active"' : '' !!}>

или

<li @if(Request::is('your_url'))class="active"@endif>
+8
источник

Установите этот код для автоматического применения для каждого <li> +, вам нужно использовать библиотеку HTMLBuilder в вашем проекте Laravel

<script type="text/javascript">
    $(document).ready(function(){
        $('.list-group a[href="/{{Request::path()}}"]').addClass('active');
    });
</script>
+7
источник

Вы должны попробовать это:

<b class="{{ Request::is('admin/login') ? 'active' : '' }}">Login Account Details</b>
+7
источник

Вы можете использовать этот код для получения текущего URL:

echo url()->current();

echo url()->full();

Я получаю это из документов Laravel.

+6
источник

Другой способ записи if и else в Laravel с использованием пути

 <p class="@if(Request::is('path/anotherPath/*')) className @else anotherClassName @endif" >
 </p>

Надеюсь, что это поможет

+5
источник

вместо того, чтобы использовать URL :: path() для проверки вашего текущего местоположения пути, вы можете рассмотреть Route :: currentRouteName(), так что на всякий случай, если вы обновляете свой путь, вам не нужно исследовать все свои страницы для обновления имя пути снова.

+4
источник
@if(request()->path()=='/path/another_path/*')
@endif
+2
источник

Для именованных маршрутов я использую:

@if(url()->current() == route('routeName')) class="current" @endif
+2
источник
class="nav-link {{ \Route::current()->getName() == 'panel' ? 'active' : ''}}"
+1
источник

Есть много способов добиться, один из них я использую всегда

 Request::url()
0
источник

Попробуй это:

<li class="{{ Request::is('Dashboard') ? 'active' : '' }}">
    <a href="{{ url('/Dashboard') }}">
	<i class="fa fa-dashboard"></i> <span>Dashboard</span>
    </a>
</li>
0
источник

Попробуй это:

@if(collect(explode('/',\Illuminate\Http\Request::capture()->url()))->last() === 'yourURL')
    <li class="pull-right"><a class="intermitente"><i class="glyphicon glyphicon-alert"></i></a></li>
@endif
0
источник

Самый простой способ

<li class="{{ Request::is('contacts/*') ? 'active' : '' }}">Dashboard</li>

Это colud захватить контакты /, контакты/создать, контакты/редактировать...

0
источник

В блейд файле

@if (Request::is('companies'))
   Companies name 
@endif
0
источник

Попробуйте так:

<a href="{{ URL::to('/registration') }}">registration </a>
-1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос