Laravel - Travailler avec la Base de Données
Salut à toi, aspirant(e)s développeur(euse)s ! Je suis excité de vous emmener dans un voyage fascinant à travers le monde de Laravel et de la gestion de bases de données. En tant que quelqu'un qui enseigne l'informatique depuis des années, je peux vous assurer que maîtriser les opérations de base de données, c'est comme apprendre à pédaler - cela peut sembler effrayant au début, mais une fois que vous avez pris l'habitude, vous serez capable de naviguer à travers vos projets avec facilité !
Connexion à la Base de Données
Commençons par les bases - la connexion à une base de données. Imaginez cela comme présenter votre application Laravel à son nouveau meilleur ami, la base de données. Ils doivent se faire connaître avant de pouvoir commencer à travailler ensemble !
Configuration
Premièrement, nous devons informer Laravel où trouver notre base de données et comment y accéder. Laravel rend cela super simple avec son fichier de configuration. Ouvrez le fichier .env
dans le répertoire racine de votre projet, et vous verrez quelque chose comme ceci :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Ces lignes sont comme donner à Laravel une carte pour accéder à votre base de données. Décomposons-les :
-
DB_CONNECTION
: Il s'agit du type de base de données que vous utilisez. MySQL est la valeur par défaut, mais Laravel supporte également d'autres types. -
DB_HOST
: Où se trouve votre base de données. Pour le développement local, c'est généralement votre propre ordinateur (127.0.0.1). -
DB_PORT
: Le numéro de porte que Laravel doit frapper pour accéder à la base de données. -
DB_DATABASE
: Le nom de votre base de données. -
DB_USERNAME
etDB_PASSWORD
: Votre shake de main secret pour accéder à la base de données.
Test de Connexion
Maintenant que nous avons présenté Laravel à notre base de données, assurons-nous qu'ils s'entendent bien. Nous pouvons le faire avec une simple commande artisan :
php artisan tinker
Cette commande ouvre le shell interactif de Laravel. Maintenant, essayons de nous connecter :
DB::connection()->getPdo();
Si vous voyez une longue chaîne de chiffres et de lettres, félicitations ! Votre application Laravel et votre base de données sont maintenant les meilleurs amis.
Création de Tables
Maintenant que nous sommes connectés, il est temps de créer des tables. Dans le monde des bases de données, les tables sont comme des feuilles de calcul où nous stockons nos données.
Migrations
Laravel utilise quelque chose appelé "migrations" pour créer et modifier des tables. Imaginez les migrations comme une machine à temps pour votre base de données - elles vous permettent de voyager dans l'histoire de votre base de données.
Pour créer une migration, utilisez cette commande artisan :
php artisan make:migration create_users_table
Cette commande crée un nouveau fichier dans le dossier database/migrations
. Ouvrez-le, et vous verrez quelque chose comme ceci :
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Ceci est comme un plan pour votre table. Décomposons-le :
-
$table->id()
: Crée une colonne d'ID auto-incrémentant. -
$table->string('name')
: Crée une colonne pour stocker des noms. -
$table->string('email')->unique()
: Crée une colonne d'email unique. -
$table->timestamp('email_verified_at')->nullable()
: Crée une colonne de timestamp nullable. -
$table->string('password')
: Crée une colonne pour stocker des mots de passe. -
$table->rememberToken()
: Crée une colonne pour stocker les tokens "remember me". -
$table->timestamps()
: Crée les colonnescreated_at
etupdated_at
.
Pour réellement créer cette table dans votre base de données, exécutez :
php artisan migrate
Et voilà ! Votre table est créée.
Insertion de Données
Maintenant que nous avons une table, mettons-y quelques données. Il y a plusieurs façons de faire cela dans Laravel.
Utilisation d'Eloquent
Eloquent est le ORM (Object-Relational Mapping) intégré de Laravel. C'est comme un traducteur entre votre code PHP et votre base de données. Voici comment vous pouvez l'utiliser pour insérer des données :
use App\Models\User;
$user = new User;
$user->name = 'John Doe';
$user->email = '[email protected]';
$user->password = bcrypt('password');
$user->save();
Dans cet exemple, nous créons un nouvel objet User, définissons ses propriétés, puis le sauvegardons dans la base de données. C'est aussi simple que cela !
Utilisation du Query Builder
Si vous préférez une approche plus SQL-like, vous pouvez utiliser le Query Builder de Laravel :
DB::table('users')->insert([
'name' => 'John Doe',
'email' => '[email protected]',
'password' => bcrypt('password'),
]);
Cette méthode est un peu plus directe - nous disons exactement à Laravel dans quelle table insérer et quelles données utiliser.
Récupération de Données
Maintenant que nous avons mis des données dans notre base de données, apprenons comment les récupérer.
Utilisation d'Eloquent
Pour récupérer tous les utilisateurs :
$users = User::all();
Pour trouver un utilisateur spécifique :
$user = User::find(1);
Pour récupérer des utilisateurs avec des conditions :
$users = User::where('name', 'John Doe')->get();
Utilisation du Query Builder
Pour récupérer tous les utilisateurs :
$users = DB::table('users')->get();
Pour trouver un utilisateur spécifique :
$user = DB::table('users')->where('id', 1)->first();
Pour récupérer des utilisateurs avec des conditions :
$users = DB::table('users')->where('name', 'John Doe')->get();
Mise à Jour de Données
Mettre à jour des données est tout aussi facile que d'insérer des données. Jetons un œil à quelques méthodes.
Utilisation d'Eloquent
$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();
Utilisation du Query Builder
DB::table('users')
->where('id', 1)
->update(['name' => 'Jane Doe']);
Suppression de Données
Enfin, apprenons comment supprimer des données de notre base de données.
Utilisation d'Eloquent
$user = User::find(1);
$user->delete();
Utilisation du Query Builder
DB::table('users')->where('id', 1)->delete();
Et voilà ! Vous venez d'apprendre les bases du travail avec les bases de données dans Laravel. Souvenez-vous, la pratique rend parfait. N'ayez pas peur d'expérimenter et d'essayer différentes requêtes. Avant de vous en rendre compte, vous serez un magicien des bases de données !
Voici un tableau de référence rapide des méthodes que nous avons couvertes :
Opération | Eloquent | Query Builder |
---|---|---|
Insertion | $user = new User; $user->save(); |
DB::table('users')->insert([]); |
Récupération de Tous | User::all(); |
DB::table('users')->get(); |
Récupération d'Un | User::find(1); |
DB::table('users')->where('id', 1)->first(); |
Mise à Jour | $user->save(); |
DB::table('users')->where('id', 1)->update([]); |
Suppression | $user->delete(); |
DB::table('users')->where('id', 1)->delete(); |
Bonne programmation, futurs maîtres des bases de données !
Credits: Image by storyset