Objavljeno: 2018-09-14

Laravel Blade direktive koje ste zaboravili koristiti

Laravel Blade direktive koje ste zaboravili koristiti

Blade je jednostavan, a ujedno veoma moćan template engine koji dolazi zajedno sa Laravel PHP framework-om. U nastavku navodimo nekoliko njegovih super korisnih direktiva koje se često ne koriste.

Prije svega, u Blade view datotekama je moguće koristiti plain PHP kod, pa zbog toga često mnogi programeri koji koriste Laravel u svojim projektima, se intuitivno odluče za rješenje korištenjem izvornih PHP funkcija ili specifičnih Laravel funkcionalnosti i metoda (takav slučaj je bio i sa autorom ovog teksta), zaboravljajući na Blade direktive, pogotovo jer su neke od njih dostupne tek u novijim verzijama. Istini za volju, rezultat je u konačnici isti, ali ipak je ljepše i ekspresivnije vidjeti Blade direktive u view datotekama.

@auth i @guest direktive

Iznad navedene Blade direktive su dostupne od verzije Laravel 5.5 i u ranijim verzijama ako je bilo potrebno u view datoteci prikaz sadržaj isključivo za prijavljenog (npr. dugme za izmjenu profila ili odjavu) ili neprijavljenog korisnika (linkovi za registraciju ili prijavu) bilo je potrebno pozvati check() metodu Auth fasade ili auth() helpera.

U nastavku Blade direktive sa kojima to izgleda mnogo jednostavnije i čistije.

@forelse

@forelse direktiva je zapravo @foreach direktiva, odnosno petlja, koju će te rado koristiti ako je potrebno ispisati sadržaj nekog niza ili kolekcije, ali i predvidjeti slučaj da ako je niz ili kolekcija prazna, da korisniku ispišete odgovarajuću poruku.

Umjesto da koristite kombinaciju @if, @else i @foreach direktiva, sa @forelse direktivom to izgleda kao u nastavku:

$loop

Dok je petlja u izvršavanju, dostupna vam je $loop varijabla koja trenutno sadrži 8 properties vrijednosti, a za ovaj tekst od interesa su first i last.

Kao primjer ćemo uzeti da je za prvu i zadnju stavku u listi potrebno naznačiti dodatne CSS klase.

Refaktorisanjem koda upotrebom Blade direktiva, rješenje je znatno jednostavnije i čitljivije.

Imajte na umu, da iznad navedeni primjeri nisu i najbolji primjer korištenja CSS-a, jer isti posao je moguće uraditi sa upotrebom :first-child i :last-child CSS selektora, te se pretpostavlja da je index niza $users integer vrijednosti koja počinje od 0.

@includeWhen i @includeIf

Jako često je potrebno uključiti view datoteku unutar master layout ili nekog druge view datoteke na osnovu određenog uslova.

Inicijalno se to može riješiti sa @if uslovom, kao npr.

@if($post->hasComments())
@include('posts.comments')
@endif

Međutim, Blade ima na raspolaganju @includeWhen direktivu koja ovaj zadatak rješava sa jednom linijom koda.

@includeWhen($post->hasComments(), 'posts.comments');

Pored @includeWhen, postoji i @includeIf direktiva koja se koristi da se uključi view datoteka ako ona zaista postoji, što može biti korisno ako radite na projektu koji koristi više različitih tema za izgled.

@includeIf('view-name')

Sa druge strane, zadatak je moguće završiti i upotrebom exists() metode.

@if(view()->exists('view-name'))
@include('view-name')
@endif

Detaljnije informacije o Blade-u pronađite u oficijelnoj dokumentaciji. Ukoliko se već ne odlučite da uradite refactroing Blade view datoteka na postojećim projektima, nadam se da će te iste koristiti projektima koji vam predstoje.

Želite postati naš klijent?

Zatražite ponudu