Créé en 2020 et modifié le 05 Mar 2021

Créé en 2020 et modifié le 05 Mar 2021

Base de données – récupération vers Laravel

 

Partie 1 – afficher depuis un modèle

Livrable : otelo/mission5/…

  • dans le contrôleur Chambre, fonction index, renvoyer la liste des chambres
$chambres = Chambre::all();
return view('chambres',['chambres' => $chambres]);

 

  • dans la vue Chambres, afficher le tableau
@extends('layouts.app')

@section('content')
<table class="table table-hover table-sm">
    <thead class="thead-dark">
        <tr>
            <th> id</th>
            <th> nbCouchage</th>
            <th> porte  </th>
            <th> etage </th>
            <th> idCategorie</th>
            <th> baignoire </th>
        </tr>
    </thead>
    <tbody>
   

         @foreach($chambres as $chambre)
          <tr>
          <td> {{$chambre->id}} </td>
              <td> {{$chambre->nbCouchage}} </td>
              <td> {{$chambre->porte}} </td>
              <td> {{$chambre->etage}} </td>
              <td> {{$chambre->idCategorie}} </td>
              <td> {{$chambre->baignoire}} </td>
             
          </tr>
         @endforeach
   </tbody>
</table>
@stop

 

  • réaliser l’uri chambres
Route::get('/chambres',[ChambreController::class, 'index'] );

 

 

 

  • Afficher la liste des chambres avec le libellé de la catégorie. Pour cela on pourra récupérer un tableau de catégorie et remplacer l’idCategorie de chambre dans la boucle.
    On réalisera une fonction de son choix dans le controleur, la vue puis la route nécessaire.

 

Partie 2 – exécuter une requête SQL

  • Réaliser la requete SQL qui permette d’afficher les chambres premium qui ont une baignoire et un prix inférieur à 100
  • Dans le contrôleur ChambreController, réaliser une fonction qui renvoie le tableau
use Illuminate\Support\Facades\DB;

 


class UserController extends Controller
{
    /**
     * Show a list of all of the application's users.
     *
     * @return Response
     */
    public function index()
    {
        $users = DB::select('select * from users where active = ?', [1]);

        return view('user.index', ['users' => $users]);
    }
}
  • réaliser une vue qui affiche le tableau
  • Ajouter la route et tester

 

Notes

  • Rafraîchir les données des modèles depuis la base, fresh et refresh
$flight = App\Flight::where('number', 'FR 900')->first();

$flight->number = 'FR 456';
$freshFlight = $flight->fresh();
$flight->number; // "FR 456"
$flight = App\Flight::where('number', 'FR 900')->first();

$flight->number = 'FR 456';
$flight->refresh();
$flight->number; // "FR 900"

 

  • Afficher l’id d’une catégorie aléatoire
app/category::all()->random(1)->first()->id;