Maison >cadre php >Laravel >Présentation de 9 fonctionnalités utiles de Laravel Eloquent

Présentation de 9 fonctionnalités utiles de Laravel Eloquent

藏色散人
藏色散人avant
2021-03-16 17:16:242167parcourir

Ce qui suit est la colonne tutoriel de laravel pour présenter et partager neuf fonctionnalités utiles de Laravel Eloquent. J'espère que cela sera utile aux amis dans le besoin !

Présentation de 9 fonctionnalités utiles de Laravel Eloquent

Neuf fonctionnalités utiles de Laravel Eloquent

Pour les développeurs qui utilisent Laravel, ils pourraient être surpris Bien que le modèle Eloquent est puissant, il existe encore de nombreuses fonctionnalités peu connues sous la surface puissante. Cet article partagera dix fonctionnalités puissantes de Laravel Eloquent.

1. Méthode find() plus puissante
Lorsque de nombreux développeurs utilisent la méthode find(), ils transmettent généralement simplement un paramètre ID ici. passez le deuxième paramètre : Spécifiez le champ que vous souhaitez retrouver dans la find() méthode

$user = App\User::find(1, ['name', 'age']);
$user = App\User::findOrFail(1, ['name', 'age']);
// 这里面的 name 和 age 字段就是制定只查找这两个字段

2 Clone Model
et utilisez-le directement<.> méthode, afin que nous puissions facilement créer une copie du modèle : replicate()

$user = App\User::find(1);
$newUser = $user->replicate();
$newUser->save();
// 这样,$newUser 和 $user 的基本数据就是一样的

3 Vérifiez si le modèle est le même Utilisez la méthode
pour vérifier les deux. Modèles Si les identifiants sont cohérents et dans le même tableau : is()

$user = App\User::find(1);
$sameUser = App\User::find(1);
$diffUser = App\User::find(2);
$user->is($sameUser);       // true
$user->is($diffUser);       // false

4. Enregistrez les données dans le modèle associé en même temps Utilisez
Vous pouvez enregistrer les données du modèle. en même temps Les données associées sont également enregistrées : push()

class User extends Model
{
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}
$user = User::first();
$user->name = "GeiXue";
$user->phone->number = '1234567890';
$user->push(); 
// 最后这一行 push() 会将 user 的数据和 phone 的数据同时更新到数据库中

5. Personnalisez le champ delete_at Si vous avez utilisé la suppression logicielle de Laravel, sachez que Laravel marque en fait The. le statut d'un enregistrement comme supprimé est en fait conservé à l'aide du champ
En fait, vous pouvez personnaliser ce champ : deleted_at

class User extends Model
{
    use SoftDeletes;
     * The name of the "deleted at" column.
     *
     * @var string
     */
    const DELETED_AT = 'deleted_date';
}
ou vous pouvez le personnaliser comme ceci :

class User extends Model
{
    use SoftDeletes;
    public function getDeletedAtColumn()
    {
        return 'deleted_date';
    }
}

. 6. Obtenez les attributs du modèle modifiésUtilisez la méthode
pour obtenir les attributs modifiés : getChanges()

$user->getChanges()
//[
     "name" => "GeiXue",
  ]

7. Vérifiez si le modèle a été modifié Utilisez la méthode
pour détecter si les données du modèle ont été modifiées : isDirty()

$user = App\User::first();
$user->isDirty();          //false
$user->name = "GeiXue";
$user->isDirty();          //true
Lors de l'utilisation de

, vous pouvez également détecter directement si un attribut a été modifié : isDirty()

$user->isDirty('name');    //true
$user->isDirty('age');     //false

8. Obtenez les données originales du modèle Lors de l'attribution de nouvelles valeurs aux attributs du modèle, vous pouvez obtenir les valeurs originales via
 : getOriginal()

$user = App\User::first();
$user->name;                   //JellyBool
$user->name = "GeiXue";         //GeiXue
$user->getOriginal('name');    //JellyBool
$user->getOriginal();          //Original $user record

9. Actualiser les données du modèle Utilisez
pour actualiser les données du modèle Ceci est particulièrement utile lorsque vous utilisez refresh() : tinker

$user = App\User::first();
$user->name;               // JellyBool
// 这个时候在其他地方,该用户的名字被更新为 GeiXue,你可以使用 refresh 来刷新,而不用退出 tinker
$user->refresh(); 
$user->name;              // GeiXue

Enfin <.>Les neuf fonctionnalités Eloquent ci-dessus sont en fait très utiles dans des scénarios d'application spécifiques. J'espère qu'elles pourront vous aider un peu lorsque vous développez des projets Laravel.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer