2013-02-21 17 views
37

Esiste un modificatore troncato per i modelli di lama in Laravel, più o meno come Smarty?Stringa troncata nei modelli di lama di Laravel

So che potrei semplicemente scrivere il php effettivo nel modello ma sto cercando qualcosa di un po 'più bello da scrivere (non entriamo nell'intero PHP è un dibattito sui motori dei modelli).

Così, per esempio sto cercando qualcosa di simile:

{{ $myVariable|truncate:"10":"..." }} 

So che potrei usare qualcosa come Ramoscello via compositore, ma spero in costruita nel funzionalità in laravel sé.

Se non è possibile creare i propri modificatori riutilizzabili come Smarty fornisce. Mi piace il fatto che Blade non esageri con tutta la sintassi ma penso che il troncamento sia una funzione molto utile da avere.

sto usando laravel 4.

+0

che dire laravel 5? –

+1

@HosMercury Per L5 vedere http://stackoverflow.com/questions/29281013/how-to-use-illuminate-support-strslug-in-my-laravel-5-app – fl3x7

risposta

27

Edit: Questa risposta è stata pubblicata durante la laravel 4 beta, quando la classe Str non esisteva. Ora c'è un modo migliore per farlo in Laravel 4 - che è la risposta di Dustin in basso. Non riesco a cancellare questa risposta a causa delle regole SO (non me lo consente)

Blade non ha questa funzionalità.

In laravel 3 c'era la classe Str - che si potrebbe fare:

{{ Str::limit($myVariable, 10) }} 

A questo punto non credo che la classe Str è in laravel 4-but here is a port of it that you can include in composer da aggiungere al proprio progetto

+0

Grazie per il suggerimento, sembra dovrò entra e usa le porte Meido lol – fl3x7

+0

Al giorno d'oggi Laravel 4 ha la classe Str. Vedi la risposta di Dustin Graham. – trm42

+0

Sì, è corretto. Quando ho postato questa risposta originariamente era durante la Beta 4 di Laravel, quando la classe Str non esisteva – Laurence

34

Laravel 4 ha Str::limit che troncherà al numero esatto di caratteri e anche Str::words che troncherà al limite della parola.

Partenza:

+0

Sai se esiste un equivalente di 'Str :: words' in Larvel 5.2? – Jiedara

+1

No. Sembra che limiti il ​​numero di parole ora, non i caratteri. : // GitHub.com/laravel/framework/blob/5.2/src/Illuminate/Support/Str.php # L182 –

+0

Era quello che stavo cercando! Grazie ! – Jiedara

90

In laravel 4 & 5, è possibile utilizzare str_limit, che limita il numero di caratteri di una stringa.

{{ str_limit($string, $limit = 150, $end = '...') }} 

Per ulteriori funzioni di aiuto laravel http://laravel.com/docs/helpers#strings

+0

funziona bene. grazie – frostymarvelous

+11

Questo funziona ancora in laravel 5 – Szenis

+0

questa è la risposta corretta – Leon

1

È possibile impostare lo spazio dei nomi come:

{!! \Illuminate\Support\Str::words($item->description, 10,'....') !!}