Napokon je na red došao najzanimljiviji dio prilikom izrade web stranice.
U ovom tutorijalu pokazati ćemo vam kako povezati Vaš controller sa rutama da dobijete CURD ili možemo reći u Laravelu RESOURCE.
Prije samog početka, saznat ćete što je to CURD.
CURD – Create, Update, Read i Delete, skraćenica za obavljanje svih navedenih funkcija koje ćemo svakodnevno koristiti u Laravel-u.
Kada pogledate imate controller naziva AlbumiController.php u kojem smo kreirali sve funkcije (koje su trenutno prazne) za obavljanje svih tih gore radnji.
Da ne ponavljamo za što je svaka funkcija zaslužena i kako smo ih kreirali, vratite se na tutorijal part3 i podsjetite se.
Rute
Sada idemo dodati linkove u našim rutama (web.php) koji će se vezati na svaku funkciju u AlbumsController.php jer želimo dobiti sljedeće: Pregled svih albuma, Pregled pojedinog albuma, stranicu za unos albuma, stranicu za uređivanje albuma i funkciju za brisanje albuma.
- Pregled svih albuma (Ovaj link smo kreirali)
Route::get('/albumi', 'AlbumController@index');
- Pregled pojedinog albuma
Route::get('/albumi/{id}', 'AlbumController@show');
- Pregled stranice za dodavanje albuma
Route::get('/albumi/create', 'AlbumController@create');
- Pregled stranice za uređivanje albuma
Route::get('/albumi/{id}/edit', 'AlbumController@edit');
- Ruta za brisanje albuma
Route::delete('/albumi/{id}', 'AlbumController@destroy');
- Tu još imamo rute za spremanje podataka kod kreiranja albuma
Route::post('/albumi', 'AlbumController@store');
- I ruta za spremanje uređenih podataka albuma
Route::put('/albumi/{id}', 'AlbumController@update');
- Sada smo povezali rute sa controller-om i svakom funkcijom unutar controllera
- No kada pogledate web.php vidjet ćete da smo napisali 7 redova koda da bi linkovi radili na svakoj funkciji
- Zamislite sada da imate 20 controller-a na nekom projektu i imate minimum 7 redova koda za svaki taj controller pa u konačnici dobijete 140 redova koda
- Laravel je smislio način kako smanjit kod i vrijeme pisanja koda, a u nastavku ćemo vam opisati kako to napraviti i pojednostaviti si život
Laravel Resource
- Da nam skrate vrijeme, tvorci Laravela su osmislili contoller resource
- Ako bi htjeli u našim rutama (route.php) dodati link koji će se vezati na svaku funkciju u AlbumsController dovoljno je ukucat naredbu Route::resource(‘naziv-linka’,’naziv-controllera’);
- Kada ukucate gore kod on će vam zamijeniti svih 7 redova što smo naveli gore u primjeru
- Dolje vam stavljamo kod koji će zamijeniti sve vaše rute za albume
Route::resource('albumi','AlbumController');
Kao što vidite gore navedeni kod će kreirati sve potrebne linkove za Albume i ne moramo brinuti hoćemo li pogriješiti u pisanju koda, uštedit će nam vrijeme i prostor za pisanje koda.
Jedino nam sada ostaje popuniti sve funkcije u AlbumController i povezati ih sa izgledom.
Idemo za test popunit sve ostale prazne funkcije u AlbumController sa komandom.
return "Radi, jupiiiiiii";
Sada možemo testirati linkove i uvjeriti se radi li nam sve:
u browser kucajte
- localhost/albumos/albumi
- localhost/albumos/albumi/1
- localhost/albumos/albumi/create
- localhost/albumos/albumi/1/edit
Za svaki od njih bi trebali dobiti ili neki view od prijašnjeg tutorijala što smo kreirali ili poruku “Radi, jupiiii”.
Ukoliko imate neku grešku javite u komentare pa da zajedno riješimo problem.
U sljedećem blog postu raditi ćemo stranicu (create) pomoću koje ćemo dodavat nove albume i funkciju (store) pomoću koje ćemo spremiti naš album u bazu podataka. Čitamo se! 🙂