Laravel 10.x pamoka. Blade šablonai
Jau pastebėjote, kad kuriant vaizdus, kuriame ne
Viduje ciklų galima naudoti
Daugiau apie Blade šablonus skaitykite oficialioje Laravel 10.x dokumentacijoje, skiltyje Blade Templates.
*.php
, o *.blade.php
failus. Taip yra todėl, kad Laravel karkasas vaizdams kurti naudoja Blade šablonus. Blade šablonų dėka PHP ir HTML kodai tampa lengvai suderinami. Blade šablonuose galite naudoti įprastą PHP kalbą, bet tai nėra optimalu ir toks kodas atrodo parašytas neišprususio programuotojo, todėl rekomenduoju perprasti Blade sintaksę.Kintamųjų išvedimas
Blade šablonuose kintamojo reikšmės išvedimui naudojami dvigubi figūriniai skliaustai:Hello, {{ $username }}
Taip pat figūrinių skliaustų viduje galima rašyti PHP funkcijas (kabliataškis po jų nėra reikalingas):
{{ date('Y-m-d') }}
PASTABA. Norint išvengti XSS atakų, visi kintamieji automatiškai apdorojami PHP standartinės funkcijos htmlspecialchars()
. Todėl jeigu jums reikia, kad kintamasis nebūtų apdorotas su funckija htmlspecialchars()
, tuomet kintamojo reikšmės išvedimui naudokite tokią sintaksę:
Hello, {!! $username !!}
Pavyzdžiui, galite pamėginti kokiame nors vaizde įrašyti:
@php
$string = '<b>pasauli</b>';
@endphp
<p>Labas, {{ $string }}!</p>
<p>Labas, {!! $string !!}!</p>
Šiuo atveju naršyklės lange matysite:
Labas, <b>pasauli</b>!
Labas, pasauli!
Direktyvos
Dažniausiai naudojamų direktyvų sąrašas pateikiamas lentelėje:@extends |
Naudojama šablonui tėvui užkrauti.
|
@section |
Naudojama trumpo turinio be HTML žymių perdavimui į tėvą šabloną, pvz., puslapio pavadinimui, antraštės pavadinimui ir pan.
|
Naudojama turinio su HTML kodu perdavimui į tėvą šabloną.
|
|
@yield |
Naudojama tėve šablone nurodyti sekcijos vietą.
|
@include |
Naudojama kai į vieną vaizdą reikia pajungti kitą vaizdą, taip vadinamą subvaizdą, pvz., galima naudoti klaidų pranešimams, modalinių dialogo langų atvaizdavimui ir pan.
|
Galima nurodyti ir masyvą kintamųjų su jų reikšmėmis, kurie bus perduoti subvaizdui.
|
|
@php |
Naudojama aprašyti bet kokiam PHP kodui.
|
@if , @elseif , @else ir @endif |
Naudojama aprašyti if sąlygos sakiniams.
|
@for |
Naudojama aprašyti for ciklui.
|
@foreach |
Naudojama aprašyti foreach ciklui.
|
@forelse |
Naudojama aprašyti @forelse ciklui. Tai nėra standartinis ciklas, jis gali patikrinti, ar masyvas nėra tuščias ir tokiu atveju išvesti kokį nors pranešimą.
|
@while |
Naudojama aprašyti while ciklui.
|
@switch , @case , @break ir @default |
Naudojama aprašyti switch ciklui.
|
@csrf |
Naudojama kiekvienoje formoje CSRF žetono (angl. token) lauko įterpimui. CSRF žetonas - tai atsitiktinai sugeneruota simbolių seka, kuri apsaugo jūsų aplikaciją nuo CSRF atakų.
|
@error |
Naudojama validacijos klaidų išvedimui.
|
@auth |
Naudojama išvesti turiniui, kuris yra skirtas prisijungusiam naudotojui.
|
@guest |
Naudojama išvesti turiniui, kuris yra skirtas neprisijungusiam naudotojui.
|
@isset |
Naudojama išvesti turiniui, kai kintamasis yra apibrėžtas ir jo reikšmė nelygi NULL.
|
@empty |
Naudojama išvesti turiniui, kai kintamasis yra "tuščias", t. y. $variable = '' .
|
$loop
kintamasis
Viduje ciklų galima naudoti $loop
kintamąjį, pvz.:
@foreach ($users as $user)
@if ($loop->first)
This is the first iteration.
@endif
@if ($loop->last)
This is the last iteration.
@endif
This is user {{ $user->id }}
@endforeach
$loop
kintamojo variacijos:
Variacija | Aprašymas |
---|---|
$loop->index |
Einamojo masyvo elemento indeksas (prasideda nuo 0). |
$loop->iteration |
Einamoji iteracija cikle (prasideda nuo 1). |
$loop->remaining |
Likusių iteracijų skaičius cikle. |
$loop->count |
Elementų skaičius masyve. |
$loop->first |
Ar tai pirmoji ciklo iteracija. |
$loop->last |
Ar tai paskutinė ciklo iteracija. |
$loop->even |
Ar tai lyginė iteracija. |
$loop->odd |
Ar tai nelyginė iteracija. |
$loop->depth |
Einamojo ciklo gylis (kai naudojamas ciklas cikle). |