2014-12-15 9 views
19

In Laravel Klingen Sie tun können:Laravel 4.2 Klinge: überprüfen, ob leer

{{ $variable or 'default' }} 

Dies wird überprüfen, ob eine Variable gesetzt ist oder nicht. Ich bekomme einige Daten aus der Datenbank, und diese Variablen sind immer gesetzt, daher kann ich diese Methode nicht verwenden.

ich für eine Kurzschrift ‚Blade‘ Funktion bin auf der Suche, dies zu tun:

{{ ($variable != '' ? $variable : '') }} 

Es ist schwer, dieses Stück oder Code, dies zu tun beacuse zu verwenden, ich weiß nicht, wie es mit einem zu tun Link oder etwas ähnliches:

<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a> 

ich habe versucht:

{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }} 

Aber es funktioniert nicht. Und ich möchte meinen Code so kurz wie möglich halten;)

Kann mir jemand das erklären?

UPDATE

ich wegen keine foreach verwenden, erhalte ich ein einzelnes Objekt (eine Schule) aus der Datenbank. Ich ging es von meinem Controller meiner Ansicht mit:

$school = School::find($id); 
return View::make('school.show')->with('school', $school); 

Also, ich möchte nicht ein @if($value != ''){} um jeden $ variabel machen (wie $ schul-> Namen).

Antwort

13

versuchen Sie dies:

@if ($value !== '') 
    {{ HTML::link($value,'some text') }} 
@endif 
+0

In der Tat, das ist eine Lösung statt Marten

+1

@Marten Wie Sie oben gesagt haben, hat Ihre Lösung nicht geklappt. Zumindest meins funktioniert :) Aber ich stimme Ihnen zu Kurzschrift –

+0

@Marten Ich empfehle Ihnen, Ihre Frage zu bearbeiten und sagen Sie mir, wie viele Variablen Sie aus Ihrer Sicht haben. vielleicht mit einem 'foreach()' wird dein Problem gelöst –

5
{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }} 

Änderung

{{ ($school->website != '') ? '<a href="' . $school->website . '" target="_blank">' . $school->website . '</a>' : '' }} 

oder den gleichen Code

{{ ($school->website != '') ? "<a href='$school->website' target='_blank'>$school->website</a>" : '' }} 
0
{{ isset($variable) ? $variable : 'default' }} 
11

Ich bevorzuge die @unless directive für die Lesbarkeit in diesem Fall.

@unless (empty($school->website)) 
    <a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a> 
@endunless