Kako napraviti svoju prvu web stranicu sa PHP frameworkom Laravel – Part 5 (CURD)

~|icon_table~|elegant-themes~|outline

02.10.2018

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! 🙂