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

Laravel - Working With Database

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 et DB_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 colonnes created_at et updated_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