web-dev-qa-db-ja.com

@ifステートメント(ブレード)内の現在のURLを取得する方法 Laravel 4?

Laravel 4を使用しています。LaravelのBladeテンプレートエンジンを使用して、ビュー内の@if条件内で現在のURLにアクセスしたいのですが、その方法がわかりません。

私はそれが<?php echo URL::current(); ?>のような何かを使って行われることができることを知っています、しかしそれは@if bladeステートメントの中では不可能です。

助言がありますか?

219
user2443854

現在のURLを取得するために:Request::url()を使用することができます、これは例です:

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

Laravelは、URLがパターンと一致するかどうかを調べる方法を提供します。

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

関連資料を調べて、さまざまな要求情報を入手してください。 http://laravel.com/docs/requests#request-information

310
Andreyco

あなたのルート名をチェックするのに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
79
Naing Win

たぶん、あなたはこれを試すべきです:

<li class="{{ Request::is('admin/dashboard') ? 'active' : '' }}">Dashboard</li>
58
Dean

私はこうします:

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

'/ view'はroutes.phpのビュー名です。

42
Jucaman

これは、 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
Abduhafiz

bladeビューでcurrent urlを取得するには、次のようにします。

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

次のコードを使って比較できるように、

@if (url()->current() == 'you url')
    //stuff you want to perform
@endif
20

少し古いですが、これはL5で動作します。

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

これは/ mycategoryと/ mycategory/slugの両方を取り込む

16
VineFreeman

Laravel 5.4

グローバル機能

@if (request()->is('/'))
    <p>Is homepage</p>
@endif
13
Rob

私は個人的にはビューの内側でそれをつかむことを試みないでしょう。私はLaravelについては驚くべきことではありませんが、ルートをコントローラに送信してから、コントローラ内で$url = Request::url();のようなものを使用して(配列を介して)変数をビューに渡す必要があると思います。

とにかくそれをする一つの方法。

編集:実際に上記の方法を見て、おそらくより良い方法です。

12
Alias

ブートストラップを使った簡単なナビゲーションバーは次のようになります。

    <li class="{{ Request::is('user/profile')? 'active': '' }}">
        <a href="{{ url('user/profile') }}">Profile </a>
    </li>
9
Alejandro Silva

それには2つの方法があります。

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

または

<li @if(Request::is('your_url'))class="active"@endif>
8
gines.nt

最も簡単な方法はRequest::url();を使うことです。

しかし、これは複雑な方法です。

URL::to('/').'/'.Route::getCurrentRoute()->getPath();
8
shasi kanth

LaravelプロジェクトでHTMLBuilderライブラリを使用する必要がある各<li> +にこのコードを自動的に適用するように設定します。

<script type="text/javascript">
    $(document).ready(function(){
        $('.list-group a[href="/{{Request::path()}}"]').addClass('active');
    });
</script>
7
Ahmed Sk

あなたはこれを試すべきです:

<b class="{{ Request::is('admin/login') ? 'active' : '' }}">Login Account Details</b>
7
pardeep

パスを使用してLaravelにifその他を書き込む別の方法

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

それが役に立てば幸い

このコードを使って現在のURLを取得することができます。

echo url()->current();

echo url()->full();

これはLaravelのドキュメントから入手できます。

4
aydin abedinia

URL :: path() を使用して現在のパスの場所を確認する代わりに、 Route :: currentRouteName() を使用してパスを更新することもできます。パス名をもう一度更新するためにすべてのページを探索する必要はありません。

4
Kenneth Sunday
@if(request()->path()=='/path/another_path/*')
@endif

名前付きルートの場合は、次のようにします。

@if(url()->current() == route('routeName')) class="current" @endif
1
Alex Pilyavskiy

最も簡単な方法は

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

このcoludは、contacts /、contacts/create、contacts/editをキャプチャします...

0
NaveenDA
class="nav-link {{ \Route::current()->getName() == 'panel' ? 'active' : ''}}"
0
mehran online

これを試して:

@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
C47

これを試して:

<li class="{{ Request::is('Dashboard') ? 'active' : '' }}">
    <a href="{{ url('/Dashboard') }}">
        <i class="fa fa-dashboard"></i> <span>Dashboard</span>
    </a>
</li>
0
Rafiqul Islam

達成するための多くの方法があります、それらから1つは私がいつも使う

 Request::url()
0