Laravel 4を使用しています。LaravelのBladeテンプレートエンジンを使用して、ビュー内の@if
条件内で現在のURLにアクセスしたいのですが、その方法がわかりません。
私はそれが<?php echo URL::current(); ?>
のような何かを使って行われることができることを知っています、しかしそれは@if
bladeステートメントの中では不可能です。
助言がありますか?
現在の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
あなたのルート名をチェックするのに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
たぶん、あなたはこれを試すべきです:
<li class="{{ Request::is('admin/dashboard') ? 'active' : '' }}">Dashboard</li>
私はこうします:
@if (Request::path() == '/view')
// code
@endif
'/ view'はroutes.phpのビュー名です。
これは、 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>
blade
ビューでcurrent url
を取得するには、次のようにします。
<a href="{{url()->current()}}">Current Url</a>
次のコードを使って比較できるように、
@if (url()->current() == 'you url')
//stuff you want to perform
@endif
少し古いですが、これはL5で動作します。
<li class="{{ Request::is('mycategory/', '*') ? 'active' : ''}}">
これは/ mycategoryと/ mycategory/slugの両方を取り込む
Laravel 5.4
グローバル機能
@if (request()->is('/'))
<p>Is homepage</p>
@endif
私は個人的にはビューの内側でそれをつかむことを試みないでしょう。私はLaravelについては驚くべきことではありませんが、ルートをコントローラに送信してから、コントローラ内で$url = Request::url();
のようなものを使用して(配列を介して)変数をビューに渡す必要があると思います。
とにかくそれをする一つの方法。
編集:実際に上記の方法を見て、おそらくより良い方法です。
ブートストラップを使った簡単なナビゲーションバーは次のようになります。
<li class="{{ Request::is('user/profile')? 'active': '' }}">
<a href="{{ url('user/profile') }}">Profile </a>
</li>
それには2つの方法があります。
<li{!!(Request::is('your_url')) ? ' class="active"' : '' !!}>
または
<li @if(Request::is('your_url'))class="active"@endif>
最も簡単な方法はRequest::url();
を使うことです。
しかし、これは複雑な方法です。
URL::to('/').'/'.Route::getCurrentRoute()->getPath();
LaravelプロジェクトでHTMLBuilder
ライブラリを使用する必要がある各<li>
+にこのコードを自動的に適用するように設定します。
<script type="text/javascript">
$(document).ready(function(){
$('.list-group a[href="/{{Request::path()}}"]').addClass('active');
});
</script>
あなたはこれを試すべきです:
<b class="{{ Request::is('admin/login') ? 'active' : '' }}">Login Account Details</b>
パスを使用してLaravelにifその他を書き込む別の方法
<p class="@if(Request::is('path/anotherPath/*')) className @else anotherClassName @endif" >
</p>
それが役に立てば幸い
このコードを使って現在のURLを取得することができます。
echo url()->current();
echo url()->full();
これはLaravelのドキュメントから入手できます。
URL :: path() を使用して現在のパスの場所を確認する代わりに、 Route :: currentRouteName() を使用してパスを更新することもできます。パス名をもう一度更新するためにすべてのページを探索する必要はありません。
@if(request()->path()=='/path/another_path/*')
@endif
名前付きルートの場合は、次のようにします。
@if(url()->current() == route('routeName')) class="current" @endif
最も簡単な方法は
<li class="{{ Request::is('contacts/*') ? 'active' : '' }}">Dashboard</li>
このcoludは、contacts /、contacts/create、contacts/editをキャプチャします...
class="nav-link {{ \Route::current()->getName() == 'panel' ? 'active' : ''}}"
これを試して:
@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
これを試して:
<li class="{{ Request::is('Dashboard') ? 'active' : '' }}">
<a href="{{ url('/Dashboard') }}">
<i class="fa fa-dashboard"></i> <span>Dashboard</span>
</a>
</li>
達成するための多くの方法があります、それらから1つは私がいつも使う
Request::url()