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

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

藏色散人
Libérer: 2021-03-17 09:12:13
avant
2151 Les gens l'ont consulté

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 字段就是制定只查找这两个字段
Copier après la connexion

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 的基本数据就是一样的
Copier après la connexion

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
Copier après la connexion

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 的数据同时更新到数据库中
Copier après la connexion

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';
}
Copier après la connexion
ou vous pouvez le personnaliser comme ceci :

class User extends Model
{
    use SoftDeletes;
    public function getDeletedAtColumn()
    {
        return 'deleted_date';
    }
}
Copier après la connexion

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

$user->getChanges()
//[
     "name" => "GeiXue",
  ]
Copier après la connexion

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
Copier après la connexion
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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal