wake-up-neo.net

Wie bekomme ich die aktuelle URL in @if-Anweisung (Blade) in Laravel 4?

Ich verwende Laravel 4. Ich möchte die aktuelle URL innerhalb einer @if-Bedingung in einer Ansicht mit der Templates-Engine von Laravel's Blade aufrufen, weiß jedoch nicht, wie das geht.

Ich weiß, dass dies mit etwas wie <?php echo URL::current(); ?> möglich ist, aber innerhalb einer @if-Anweisung nicht möglich ist.

Irgendwelche Vorschläge?

207
user2443854

Sie können: Request::url() verwenden, um die aktuelle URL abzurufen. Hier ein Beispiel:

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

Laravel bietet eine Methode, um herauszufinden, ob die URL einem Muster entspricht oder nicht

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

Überprüfen Sie die zugehörige Dokumentation, um andere Anforderungsinformationen zu erhalten: http://laravel.com/docs/requests#request-information

319
Andreyco

Sie können auch Route::current()->getName() verwenden, um den Routennamen zu überprüfen.

Beispiel: routes.php

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

Aussicht:

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

Vielleicht sollten Sie dies versuchen:

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

Ich würde es so machen:

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

dabei ist/view der Ansichtsname in der route.php.

40
Jucaman

Dies wird mir für Bootstrap-aktive Nav-Klasse in Laravel 5.2 geholfen:

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

Um current url in der blade-Ansicht zu erhalten, können Sie folgendes verwenden,

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

So wie Sie mit folgendem Code vergleichen können,

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

Ein bisschen alt, aber das funktioniert in L5:

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

Dies erfasst sowohl/mycategory als auch/mycategory/slug

16
VineFreeman

Laravel 5.4

Globale Funktionen

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

Ich persönlich würde nicht versuchen, es in die Ansicht zu packen. Ich bin bei Laravel nicht verblüffend, aber ich würde mir vorstellen, Sie müssten Ihre Route an einen Controller senden und dann innerhalb des Controllers die Variable (über ein Array) mit etwas wie $url = Request::url(); in Ihre Ansicht übergeben.

Eine Möglichkeit, es trotzdem zu tun.

BEARBEITEN: Sehen Sie sich die Methode oben an, wahrscheinlich eine bessere Methode.

11
Alias

Eine einfache Navbar mit Bootstrap kann wie folgt ausgeführt werden:

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

Dafür gibt es zwei Möglichkeiten:

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

oder

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

Der einfachste Weg ist die Verwendung von: Request::url();

Aber hier ist ein komplexer Weg:

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

Stellen Sie diesen Code so ein, dass er automatisch für jeden <li> + gilt, den Sie zur Verwendung der HTMLBuilder-Bibliothek in Ihrem Laravel-Projekt benötigen

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

Sie sollten dies versuchen:

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

Eine andere Möglichkeit, wenn und in Laravel mit path zu schreiben

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

Ich hoffe es hilft

Sie können diesen Code verwenden, um die aktuelle URL abzurufen:

echo url()->current();

echo url()->full();

Das bekomme ich aus Laravel-Dokumenten.

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

anstatt URL :: path () zur Überprüfung Ihres aktuellen Pfadstandorts zu verwenden, sollten Sie Route :: currentRouteName () in Betracht ziehen. Wenn Sie Ihren Pfad aktualisieren, tun Sie dies nicht Sie müssen alle Ihre Seiten durchsuchen, um den Pfadnamen erneut zu aktualisieren.

1
Kenneth Sunday

Der einfachste Weg ist

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

Dies könnte die Kontakte /, Kontakte/erstellen, Kontakte/bearbeiten ... erfassen.

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

Für benannte Routen verwende ich:

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

Versuche dies:

@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

Versuche dies:

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

0
Rafiqul Islam

Es gibt viele Möglichkeiten, einen zu erreichen, den ich immer benutze

 Request::url()
0