10 Directive de Laravel Blade pe care probabil nu le stii
Stefanescu Mihai 2 years ago iNoobBlade 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.