Laravel 4'te Mevcut URL Inside @ if Deyimi (Blade) Nasıl Alınır?


269

Laravel 4 @ifkullanıyorum. Laravel'in Blade şablon motorunu kullanarak bir görünümdeki mevcut URL'ye erişmek istiyorum ancak nasıl yapılacağını bilmiyorum.

Bunun gibi bir şey kullanılarak yapılabileceğini biliyorum <?php echo URL::current(); ?>ama bir @ifblade ifadesinin içinde mümkün değil .

Baska öneri?


Aşağıdaki yanıtlardan herhangi biri sorununuza yardımcı oldu mu?
N69S

Yanıtlar:


358

Request::url()Mevcut URL'yi almak için : kullanabilirsiniz , işte bir örnek:

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

Laravel, URL'nin bir kalıpla eşleşip eşleşmediğini öğrenmek için bir yöntem sunar

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

Farklı istek bilgileri almak için ilgili belgelere bakın: http://laravel.com/docs/requests#request-information


2
<li {{(Request :: is ('admin / dashboard')? 'class = "active"': '')}}> Bunu denedim, başarısız oldu: x
TransformBinary

4
Benim durumumda, URL için bir başlangıç ​​/ URL kullanıyordum, kaldırmak sorunu çözer
Joaquín L. Robles

@Andreyco ne ana sayfa dışında tüm sayfalara bir afiş koymak gerekirse bunu deneyin deneyin@if(Request::url()!=='/') <div class="bannerImage">{{ HTML::image('images/fullimage3.jpg') }}</div> @endif
Yousef Altaf

4
Bunun için bir sonraki formatı kullanıyorum: <li {!! (İstek :: url () == url ('/'))? 'class = "active"': '' !!}>, çünkü {{some_code}} ile format dize kodlaması kullanıyor.
Viktor

3
url() şimdi bir oluşturucu örneği döndürür . kullanmalıurl()->current()
Jeff Puckett

92

Route::current()->getName()Rota adınızı kontrol etmek için de kullanabilirsiniz .

Örnek: route.php

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

Görünüm:

@if(Route::current()->getName() == 'testing')
    Hello This is testing
@endif

38
Bilginize, Route::is('testing')ile aynıdır Route::current()->getName() == 'testing'.
Hkan

@Hkan İkisi de farklı değil, Route::is('testing')- >> işe yaramayacağını Route::is('test')test - >> Route::current()->getName() == 'testing'takma ad çalışacak ve url farklı test
Naveen Singh raghuvanshi

1
@ Hayır, Route::is()yolu değil rota adını kontrol eder.
Hkan

1
ayrıca stenografiRoute::currentRouteName()
Jeff Puckett

@Hkan Evet, ancak URL'nizdeki parametrelerle, örneğin jetonlarla çalışırken bu işe yaramaz ...
Pathros

66

Belki bunu denemelisin:

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

47

Bunu şu şekilde yaparım:

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

burada '/ view', route.php dosyasındaki görünüm adıdır.


Mevcut direnin evde olup olmadığını nasıl anlarım? Yani, kamu /. Ahh, anladım, sadece =='public'
yazıyorum

1
Eğer home dir. Route.php içinde '/' ise, sadece şunu yazabilirsiniz== '/')
Jucaman

Parametrelerle de nasıl çalışmasını sağladınız? Sadece rota adı değil.
Pathros

Rotalarınızı nasıl yapılandırdığınıza bağlı olarak, parametreleri rota adından sonra birçok şekilde birleştirebilirsiniz.
Jucaman

Bunu şöyle yaparım: Request::url()- tam URL'yi aldığınızdan
Derk Jan Speelman

37

Almak için current urlde bladeşu kullanabilirsiniz görünümü,

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

Aşağıdaki kodu kullanarak karşılaştırabileceğiniz gibi,

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

2
Sorgu dizesini bıçakta da almanız gerekiyorsa, o zaman sorgu dizesini terk request()->getQueryString()ettiği için çok yararlı olan kullanabilirsiniz url()->current().
Spencer O'Reilly

25

Laravel 5.2'de bootstrap active nav class için bana yardımcı oldu :

<li class="{{ Request::path() == '/' ? 'active' : '' }}"><a href="/">Home</a></li>
<li class="{{ Request::path() == 'about' ? 'active' : '' }}"><a href="/about">About</a></li>

1
Teşekkürler, kodu biliyordum ama Google beni 5 saniye içinde buraya getirdi haha.

Ayrıca aynı laravel 4.2 ile çalışıyor ve iyi çalışıyor. Thank you
Vipertecpro

Ayrıca Laravel 5.6 üzerinde çalışıyor, teşekkürler ... bu beni her görüş için navs yapmaktan kurtardı: D
LaravDev

19

Biraz eski ama bu L5'te çalışıyor:

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

Bu hem / mycategory hem de / mycategory / slug öğelerini yakalar


1
Ben kullanıyorum{{ Request::is('clientes/*') ? 'active' : ''}}
Alex Angelico

16

Laravel 5.4

Global fonksiyonlar

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

Bu URL'ler de "/" değerine eşit olduğundan, bu yüzden domain.com/?page_id=1, domain.com/?page_id=2 gibi bir sorgu dizesi ile uğraşıyorsanız bu her zaman işe yaramaz
Ryan S

Kullandımrequest()->routeIs('...')
Lachezar Todorov

15

Ben şahsen görünüm içinde kapma denemek olmaz. Laravel'de şaşırtıcı değilim, ancak rotanızı bir denetleyiciye göndermeniz gerektiğini ve daha sonra denetleyicinin içinde, değişkeni (bir dizi aracılığıyla) benzer bir şey kullanarak görünümünüze aktarmanız gerektiğini düşünürdüm $url = Request::url();.

Yine de bunu yapmanın bir yolu.

DÜZENLEME: Aslında yukarıdaki yönteme bakın, muhtemelen daha iyi bir yol.


11

Bootstrap ile basit bir navbar şu şekilde yapılabilir:

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

9

En basit yol kullanmaktır: Request::url();

Ancak burada karmaşık bir yol var:

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

9

Bunu yapmanın iki yolu vardır:

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

veya

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

8

Bunu denemelisiniz:

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

7

Laravel projenizde kitaplığı <li>kullanmanız gereken her + için bu kodu otomatik olarak uygulanacak şekilde ayarlayınHTMLBuilder

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

7

Mevcut URL'yi almak için bu kodu kullanabilirsiniz:

echo url()->current();

echo url()->full();

Bunu Laravel belgelerinden alıyorum.


5

Laravel'de yolu kullanarak if ve else yazmanın başka bir yolu

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

Umarım yardımcı olur


4

geçerli yol konumunuzu kontrol etmek için URL :: path () kullanmak yerine , Route :: currentRouteName () yöntemini göz önünde bulundurmak isteyebilirsiniz, bu nedenle yolunuzu güncellemeniz durumunda, güncellemek için tüm sayfalarınızı keşfetmeniz gerekmez yol adını tekrar girin.


4

Adlandırılmış rotalar için şunu kullanıyorum:

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


2
@if(request()->path()=='/path/another_path/*')
@endif

Bu kod soruyu cevaplayabilirken, bu kodun soruyu neden ve / veya nasıl cevapladığı konusunda ek bağlam sağlamak uzun vadeli değerini arttırır.
rollstuhlfahrer

1

Bunu dene:

@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

Sınırlı ve anında yardım sağlayabilecek bu kod snippet'i için teşekkür ederiz. Bir Doğru bir açıklama ölçüde uzun vadeli değer artıracak göstererek neden bu soruna iyi bir çözüm olduğunu ve diğer benzer sorularla gelecek okuyucularına daha kullanışlı bir hale getirecektir. Yaptığınız varsayımlar dahil bazı açıklamalar eklemek için lütfen yanıtınızı düzenleyin .
jhpratt GOFUNDME RELICENSING

0

Bunu dene:

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



0

En basit yol

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

Bu colud kişileri yakalamak /, kişiler / oluşturmak, kişiler / düzenlemek ...



-1

Bu şekilde deneyin:

<a href="{{ URL::to('/registration') }}">registration </a>

Cevabınıza biraz açıklama ekleyin
Pankaj Makwana
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.