Créé en 2020 et modifié le 22 Oct 2020
Base de données – enregistrement depuis Laravel
Laravel utilise l’ORM Eloquent.
Partie 1 – création de la base
Livrable : otelo/mission2/…
- réaliser le diagramme de classe correspondant à la base de données suivante
- réaliser la base de données avec le nom de votre hotel
- déposer le diagramme et l’export de la bd dans gitlab
Partie 2 – connexion depuis Laravel
Livrable : otelo/mission2/…
- dans le fichier .env, modifier les paramètres pour se connecter à votre base de données
DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=otelo DB_USERNAME=root DB_PASSWORD=
- observer dans database/migrations, le fichier php create user
- exécuter la commande suivante pour lancer les fichiers migrations
php artisan migrate
Partie 3 – lier la table chambre avec Laravel
Livrable : otelo/mission2/…
- définir le contrôleur pour les chambres via la commande suivante
php artisan make:controller -r ChambreController
- créer le modele Chambre
php artisan make:model Chambre
- ajouter la route
Route::get('/chambre',[ChambreController::class, 'store'] );
- dans la classe Chambre, ajouter
Class Chambre extends Model { protected $table = "chambre"; protected $fillable = [ 'nbCouchage' ,'porte','etage','idCategorie','baignoire','prixBase' ]; }
- dans la fonction store de ChambreController
public function store(Request $request) { $chambre= Chambre::create([ 'nbCouchage' =>2, 'porte' => 'B', 'etage' => 10, 'idCategorie' => 1, 'baignoire' => 0, 'prixBase' => 50 ]); //$chambre = new Chambre; $chambre->porte='C'; //$chambre->etage=$request->etage; $chambre->save(); }
- ajouter le use App\Models\Chambre dans le controleur
- rafraichir le cache laravel
php artisan config:clear
- appeler l’uri /chambre
- ajouter les colonnes manquantes à votre table pour permettre l’ajout de la donnée.
Partie 4 – création de la table réservation via Laravel
Livrable : otelo/mission2/…
- créer sa propre migration pour la table réservation
php artisan make:migration create_reservation_table
- dans le fichier de migration
public function up() { Schema::create('test', function (Blueprint $table) { $table->id(); $table->date('dateD'); $table->date('dateF'); $table->integer('idPeriode'); $table->timestamps(); }); }
- exécuter la migration
php artisan migrate
En cas d’erreur sur la taille des chaines, dans AppServiceProvider.php
use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Schema; class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); }
Partie 5- création de chambres depuis Laravel
Livrable : otelo/mission2/…
- réaliser un seeder
php artisan make:seed ChambreSeeder
- dans la fonction run
$chambre= Chambre::create([ 'nbCouchage' =>2, 'porte' => 'B', 'etage' => 10, 'idCategorie' => 1, 'baignoire' => 0, 'prixBase' => 50 ]); //affichage en console dd($chambre);
- dans la fonction run de database/seeds/DatabaseSeeder.php
$this->call(ChambreSeeder::class);
- tester avec la commande et observer si une donnée est créée
php artisan db:seed
- permettre de générer 30 chambres aléatoirement, tous les champs seront aléatoire avec du code php.
On verra plus tard comment récupérer les données depuis la base.
Notes
- erreur à l’importation sur la taille des chaines, dans AppServiceProvider.php
public function boot() { Schema::defaultStringLength(171); }
- annuler migration
php artisan migrate:rollback
- annuler toutes les migrations
php artisan migrate:reset
- annuler toutes les migrations et ré-exécuter
php artisan migrate:refresh
- créer un model avec migration
php artisan make:model Chambre -m php artisan migrate