2014-12-15 5 views
19

W laravel ostrze można zrobić:laravel 4,2 ostrze: sprawdź czy pusty

{{ $variable or 'default' }} 

to sprawdzi, czy zmienna jest ustawiona czy nie. Dostaję trochę danych z bazy danych, a te zmienne są zawsze ustawione, więc nie mogę użyć tej metody.

szukam skrót funkcja „ostrze” dla tej operacji:

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

Trudno wykorzystać ten fragment lub kod robi to ze wzgl? Du, nie wiem jak to zrobić z Link lub coś takiego:

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

próbowałem:

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

Ale to nie działa. I, chciałbym, aby mój kod był jak najkrótszy;)

Czy ktoś może mi to wyjaśnić?

UPDATE

nie używam foreach powodu, mam pojedynczy obiekt (jeden szkolnego) z bazy danych. Minąłem go z mojego kontrolera do moim zdaniem z:

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

Więc nie chcę dokonać @if($value != ''){} wokół każdej zmiennej $ (jak $ School-> nazwa).

Odpowiedz

13

spróbuj tego:

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

Rzeczywiście, jest to rozwiązanie zamiast wpisywania Marten

+1

@Marten Jak wspomniałeś powyżej, twoje rozwiązanie nie zadziałałoby. Co najmniej moje prace :) Ale zgadzam się z tobą o byciu stenografem –

+0

@Marten Proponuję Ci edytować swoje pytanie i powiedzieć mi, ile zmiennych masz w swoim widoku. może z 'foreach()' Twój problem zostanie rozwiązany –

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

zmiana

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

lub tego samego kodu

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

Ja wolę @unless directive dla czytelności w takich okolicznościach.

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