Le contenu de cet article concerne le partage de compétences Laravel Eloquent (exemple d'explication). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Laravel est un framework riche en fonctionnalités. Cependant, vous ne pourrez pas trouver toutes les fonctionnalités disponibles dans la documentation officielle. Voici quelques fonctionnalités que vous ne connaissez peut-être pas.
1. Obtenez les attributs d'origine
Lors de la modification d'un enregistrement de modèle Eloquent, vous pouvez obtenir les attributs d'origine de l'enregistrement en appelant la méthode getOriginal()
$user = App\User::first(); $user->name; //John $user->name = "Peter"; //Peter $user->getOriginal('name'); //John $user->getOriginal(); //原始 $user 记录
2. Vérifiez si le modèle a été modifié
Utilisez la méthode isDirty() pour déterminer si le modèle ou un attribut donné a été modifié
$user = App\User::first(); $user->isDirty(); //false $user->name = "Peter"; $user->isDirty(); //true
Vous pouvez également vérifier si l'attribut spécifié a été modifié.
$user->isDirty('name'); //true $user->isDirty('age'); //false
3. Obtenez les attributs modifiés
Utilisez getChanges() pour obtenir les attributs modifiés
$user->getChanges() //[ "name" => "Peter", ]
4 Définissez le champ delete_at
Par défaut, Laravel utilise le champ delete_at pour gérer les suppressions logicielles. Vous pouvez le modifier en définissant l'attribut DELETED_AT.
class User extends Model { use SoftDeletes; * The name of the "deleted at" column. * * @var string */ const DELETED_AT = 'is_deleted'; }
Ou définir l'accès
class User extends Model { use SoftDeletes; public function getDeletedAtColumn() { return 'is_deleted'; } }
5. Enregistrez le modèle et la relation
Vous pouvez utiliser la méthode push() pour enregistrer le modèle et sa relation d'association.
class User extends Model { public function phone() { return $this->hasOne('App\Phone'); } } $user = User::first(); $user->name = "Peter"; $user->phone->number = '1234567890'; $user->push(); // 这将更新数据库中的用户和电话
6. Recharger le modèle
Utilisez Fresh() pour recharger un modèle depuis la base de données.
$user = App\User::first(); $user->name; // John // user 表被其他进程修改。 例:数据库又插入一条 “name” 为 “Peter” 的数据。 $updatedUser = $user->fresh(); $updatedUser->name; // Peter $user->name; // John
7. Recharger le modèle existant
Vous pouvez utiliser la méthode rafraîchir() pour recharger un modèle existant avec de nouvelles valeurs de la base de données.
$user = App\User::first(); $user->name; // John // user 表被其他进程修改。例: “name” 被修改为 “Peter” 。 $user->refresh(); $user->name; // Peter
8. Vérifiez si les modèles sont identiques
Utilisez la méthode is() pour déterminer si les deux modèles ont la même clé primaire et appartiennent à la même table.
$user = App\User::find(1); $sameUser = App\User::find(1); $diffUser = App\User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false
9. Cloner un modèle
Vous pouvez utiliser la méthode replicate() pour copier un modèle dans un nouvel objet.
$user = App\User::find(1); $newUser = $user->replicate(); $newUser->save();
10. Spécifiez l'attribut à rechercher dans la méthode find()
Lors de l'utilisation de la méthode find() ou findOrFail(), transmettez-la. le deuxième Paramètres peut spécifier les propriétés à trouver.
$user = App\User::find(1, ['name', 'age']); $user = App\User::findOrFail(1, ['name', 'age']);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!