4. Vederea tuturor inregistrarilor(metoda1) cu
closure
• Pentru a crea un model vom scrie: php artisan make:model Flower
• Astfel a fost creat articolul /app/Flower.php
<?php namespace App;
use IlluminateDatabaseEloquentModel;
class Flower extends Model {
}
?>
5. Routes
• In fisierul /routes/web.php adaugati linia:
<?php
use AppFlower;
Route::get('flowers',function(){
$flowers=Flower::all();
return view('flowers.show')->with('flowers', $flowers);
});
?>
Astfel vor fi extrase toate inregistrarile din db si vor fi incarcate in
variabila $flowers, care va fi trimisa vederii.
10. METODA2 – acelasi lucru cu controllere in
routes(fara closure)!!!
• Acelasi lucru se poate obtine si fara closure, scriind codul functiilor
closure (functiile din fisierul routes) direct in functiile din
FlowersController, astfel:
• Editati fisierul /routes/web.php astfel:
<?php
use AppFlower;
Route::get('flowers', 'FlowersController@index');
Route::get('flowers/{nume}', 'FlowersController@show');
?>
11. • Creati controller-ul /app/Http/Controllers/FlowersController.php
care va contine codul functiilor closure (functiile din fisierul routes) in functiile sale index si show:
<?php namespace AppHttpControllers;
use AppHttpRequests;
use AppHttpControllersController;
use IlluminateHttpRequest;
//adaugati linia urmatoare
use AppFlower;
class FlowersController extends Controller {
public function index()
{
$flowers=Flower::all();
return view('flowers.show')->with('flowers', $flowers);
}
public function show($nume)
{
//select * from flowers where flower=$flower LIMIT 1
$flower=Flower::where('nume','=',$nume)->first();
return view('flowers.showflower', ['flower'=>$flower]);
}?>
Pentru a vizualiza in browser, se folosesc vederile definite anterior.
12. • Pentru a verifica daca sunt inregistrari in baza de date, inainte de a afisa datele, vom modifica vederea /resources/views/flowers/show.blade.php astfel:
<!DOCTYPE html>
<html>
<head><title>Flowers</title></head>
<h1>Flowers data</h1>
@if (count($flowers)==0)
Nu sunt inregistrari in db!
@else
<table>
<tr>
<th>Nume</th>
<th>Marime</th>
<th>Culoare</th>
<th>Pret</th>
</tr>
@foreach($flowers as $flower)
<tr>
<td><?php echo link_to("/flowers/{$flower->nume}", $flower->nume);?></td>
<td><?php echo $flower->culoare;?></td>
<td><?php echo $flower->marime;?></td>
<td><?php echo $flower->pret;?></td>
</tr>
@endforeach
</table>
@endif
</html>