Laravel View Composer, arba kaip perduoti duomenis į View iš bet kokio URL adreso

2014-10-02

Gan dažna situacija - yra projekto meniu imamas iš duomenų bazės ir vaizduojamas per View. Bet juk View nedera daryti kreipinių į duomenų bazę, tada turime perduoti tuos duomenis iš Controllers? Bet turime tuzinus Controllerių, negi kopijuoti į kiekvieną iš jų? Nesąmonė. Čia mums padės View Composer struktūra.

Visų pirma, čia žodis composer neturi nieko bendro su PHP bibliotekų valdymo įrankiu Composer. Šiuo atveju tai tiesiog Laravel funkcija.

Pavyzdys iš oficialios dokumentacijos:

View::composer('profile', function($view)
{
  $view->with('count', User::count());
});

Išverčiant į žmogišką kalbą: jei kraunamas View failas profile.blade.php, kreiptis į duomenų bazę ir užpildyti kintamąjį $count eilučių skaičiumi iš Users lentelės. Tada View faile jį galime naudoti tiesiog kaip {{ $count }}

Iš pirmo žvilgsnio, gaunasi pririšimas prie konkretaus View failo, kas mums netinka. Bet triukas čia yra - galima naudoti ir bazinius View failus, kuriuos vėliau su extends pagalba paveldėsime konkrečiuose puslapiuose. Taigi, jei turime base.blade.php, tai ir kviečiame View::composer('base', ...).

Tiesa, oficialioje dokumentacijoje nėra parašyta, į kurį failą būtent rašyti šią konstrukciją, pats įrašau ją į app/routes.php. Kiek plačiau apie View Composer galite paskaityti Laravel puslapyje.


(Mailchimp sistema jums atsiųs patvirtinimo laišką, nepamirškite patvirtinti)


Komentarų: 0




Naujausi PHPpamokos.lt online-kursai

23 EUR (79.41 Lt)
23 EUR (79.41 Lt)
23 EUR (79.41 Lt)
Nuo Laravel 4 prie Laravel 5
Povilas Korop

23 EUR (79.41 Lt)
MySQL: nuo pradmenų iki optimizavimo
Povilas Korop
23 EUR (79.41 Lt)
OOP: objektinis programavimas su PHP
Povilas Korop
23 EUR (79.41 Lt)
Kaip kurti Wordpress pluginus?
Arūnas Liuiza

23 EUR (79.41 Lt)
PHP online-kursas pradedantiesiems
Povilas Korop