L'ORM Eloquent inclus avec Laravel fournit une belle et simple implémentation ActiveRecord pour travailler avec votre base de données. Chaque table de base de données a un "Modèle" correspondant qui est utilisé pour interagir avec cette table.
Avant de commencer, assurez-vous de configurer une connexion à la base de données dans app/config/database.php.
Utilisation de base
Pour commencer, créez un modèle Eloquent. Les modèles résident généralement dans le répertoire app/models, mais vous êtes libre de les placer n'importe où qui peut être chargé automatiquement en fonction de votre fichier composer.json.
Écrire votre propre constructeur éloquent
Il est possible de créer votre propre Eloquent Builder et de le lier à vos modèles. Cela peut être fait en créant une classe qui étend Eloquent Builder. Je vais utiliser l'exemple ci-dessus pour le modèle que nous allons nettoyer. Commençons donc par créer un ArticleBuilder. L'endroit où vous le placez n'a pas vraiment d'importance, mais j'ai tendance à créer un répertoire pour lui dans l'espace de noms de l'application.
Notez que vous devez indiquer à Eloquent quelle table utiliser pour notre modèle Utilisateur. Le nom au pluriel en minuscules de la classe sera utilisé comme nom de table à moins qu'un autre nom ne soit explicitement spécifié. Ainsi, dans ce cas, Eloquent supposera que le modèle User stocke les enregistrements dans la table users.
Remarque : Eloquent supposera également que chaque table a une colonne de clé primaire nommée id. Vous pouvez définir une propriété primaryKey pour remplacer cette convention. De même, vous pouvez définir une propriété de connexion pour remplacer le nom de la connexion à la base de données qui doit être utilisé lors de l'utilisation du modèle.
Une fois qu'un modèle est défini, vous êtes prêt à commencer à récupérer et à créer des enregistrements dans votre table. Notez que vous devrez placer les colonnes updated_at et created_at sur votre table par défaut. Si vous ne souhaitez pas que ces colonnes soient automatiquement gérées, définissez la propriété $timestamps de votre modèle sur false.