2014-12-15 19 views
19

In laravel la lama si può fare:laravel 4.2 lama: controllare se vuoto

{{ $variable or 'default' }} 

Questo verificherà se una variabile è impostata oppure no. Ottengo alcuni dati dal database e quelle variabili sono sempre impostate, quindi non posso usare questo metodo.

Cerco una scorciatoia funzione 'blade' per fare questo:

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

E 'difficile da usare questo pezzo o il codice per fare questo Allucinante, non so come si fa con un link o qualcosa di simile:

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

ho provato:

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

Ma, non funziona. E, vorrei mantenere il mio codice il più breve possibile;)

Qualcuno può spiegarmelo?

UPDATE

Non faccio uso di un foreach a causa di, ottengo un singolo oggetto (una scuola) dal database. Ho passato dal mio controller per mio punto di vista con:

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

Quindi, non voglio fare un @if($value != ''){} intorno ogni variabile $ (come $ scuola-> nome).

risposta

13

provare questo:

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

Infatti, questa è una soluzione invece di digitare Marten

+1

@Marten Come hai detto sopra, la tua soluzione non funzionava. Almeno la mia funziona :) Ma sono d'accordo con te sulla stenografia –

+0

@Marten Ti suggerisco di modificare la tua domanda e dimmi quante variabili hai nella tua vista. forse con un 'foreach()' il tuo problema verrà risolto –

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

modifica

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

o lo stesso codice

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

Preferisco il @unless directive per la leggibilità in questa circostanza.

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