10 Directive de Laravel Blade pe care probabil nu le stii

iNoob | Stefanescu Mihai | 2020-10-11

Blade este template engine-ul din Laravel. Acest template engine iti usureaza mult viata de dezvoltator, dar majoritatea probabil nu ne folosim de foarte multe dintre feature-urile lui. In acest articol vreau sa fac o lista cu 10 dintre directivele pe foarte multi probabil nici nu le cunosc.

@forelse

In loc de count inainte de un foreach putem folos forelse astfel:

@if ($articles->count() > 0)
    @foreach($articles as $article)
        <a href="{{ route('article.show', $article->slug) }}">{{ $article->title }}</a>
    @endforeach
@else
    <p>no articles</p>
@endif  

Va deveni:

@forelse($articles as $article)
   <a href="{{ route('article.show', $article->slug) }}">{{ $article->title }}</a> 
@empty
    <p>no articles</p>
@endforelse

@each

In loc sa facem foreach si apoi sa includem un partial:

@foreach($articles as $article)
    @include('articles.details', ['article' => $article])
@endforeach

Putem face:

@each('articles.details', $articles, 'article')

@json

In loc de json_encode cand pasam o variabla in javascript

<script>
    var articles = {!! json_encode($articles) !!}
</script>

Putem face:

<script>
    var articles = @json($articles)
</script>

@verbatim

<div class="container">
    Salut, @{{ name }}
</div>

va deveni

@verbatim
    <div class="container">
        Salut, {{ name }}
    </div>
@endverbatim

@isset si @empty

De multe ori suntem pusi in situatia de a folosi isset() si empty(), dar blade vine in ajutorul nostru cu 2 diretive foarte simple

@isset($articles)
    //e acelasi lucru cu @if(isset($articles))
@endisset

la fel si pentru empty

@empty($articles)
    //e acelasi lucru cu @if(empty($articles))
@endempty

@php

Putem folosi aceasta directiva pentru a scrie php in blade

@php
    $value = $item[1] + $item[2];
@endphp

@push si @stack

Folosite pentru a adauga js-uri in stack

//asta sta in master view
<body>
    @stack('scripts')
</body>

// iar undeva intr-un child

@push('scripts')
    <script src="/item.js"></script>
@endpush

@inject

Ne ajuta la injectarea unui anumit serviciu.

@inject('metrics', 'App\Services\MetricsService')

<div>
    Total Vanzari: {{ $metrics->totalRevenue() }}
</div>

@includeWhen

In loc de a face un if sa vedem daca trebuie sa nu sa afisam un anumit partial putem folosi includeWhen

@if($userCanViewSection)
    @include('components.section');
@endif

poate fi inlocuit cu 

@includeWhen($userCanViewSection, 'components.section')

@hasSection

Verifica daca o sectiune este prezenta in subview

@hasSection('navigation')
    <div class="pull-right">
        @yield('navigation')
    </div>
    <div class="clearfix"></div>
@endif

Sper ca aceste directive de blade sa va fie folositoare! pentru orice sugestii puteti folosi sectiunea de comentarii de mai jos.


Imi place ce faci aici
Daca iti place ce fac aici imi poti cumpara o cafea Buy Me a Coffee at ko-fi.com

Stefanescu Mihai
Programator de ~8 ani, am lucrat la proiecte din mai multe industrstrii, de la eCommerce la telecomunicatii la automatizari. In acest timp am folosi diferite tehnologii, de la PHP, MySQL, PostgreSql, RabbitMq, Redis, Memcached si altele.
       

Get in touch
Pentru nelamuriri, dubii, comentarii si chestii de pe suflet ne putem auzi pe Discord, Reddit sau poti deschide o discutie noua pe forum.

Posteaza un comentariu

Comentarii

Inca nu au fost postate comentarii, fii primul care posteaza un comentariu!

Club-ul este dedicat membrilor si ofera access la mai multe zone ale website-ului.

🗝ïļ Login 🌟 Register

🔖 Bookmarks ⊞
âœĻ Pentru a sustine aceasta comunitate am sa te rog sa te autentifici sau sa te inregistrezi!

🌊ïļ Discord ⊞

Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.

⮆ïļ