Laravel Eloquentの便利な9つの機能を紹介

藏色散人
リリース: 2021-03-17 09:12:13
転載
2127 人が閲覧しました

以下は laravel のチュートリアル コラムで、Laravel Eloquent の 9 つの便利な機能を紹介し、共有します。

Laravel Eloquentの便利な9つの機能を紹介

Laravel Eloquent の 9 つの便利な機能

Laravel を使用する開発者にとっては、驚くかもしれませんが、Eloquent モデルはこの記事では、Laravel Eloquent の 10 個の強力な機能を紹介します。

1. より強力な find() メソッド
多くの開発者が find() メソッドを使用する場合、通常は単にID パラメーターの 2 番目のパラメーターも渡します: find() メソッドで見つかるフィールドを指定します

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

2 .Clone Model
replicate() メソッドを使用するだけで、モデルのコピーを簡単に作成できます:

$user = App\User::find(1);
$newUser = $user->replicate();
$newUser->save();
// 这样,$newUser 和 $user 的基本数据就是一样的
ログイン後にコピー

3. モデルが同じかどうかを確認します。
is() メソッドを使用して、2 つのモデルの ID が一致しているかどうか、およびそれらが同じテーブル内にあるかどうかを確認します:

$user = App\User::find(1);
$sameUser = App\User::find(1);
$diffUser = App\User::find(2);
$user->is($sameUser);       // true
$user->is($diffUser);       // false
ログイン後にコピー

4。関連するモデルで データを同時に保存します。Use
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。カスタムのdeleted_atフィールドLaravelのソフト削除を使用したことがある場合は、Laravelが実際にレコードを削除済みとしてマークするために
deleted_atフィールドを使用することを知っておく必要があります。メンテナンス、実際、このフィールドはカスタマイズできます。 :

class User extends Model
{
    use SoftDeletes;
     * The name of the "deleted at" column.
     *
     * @var string
     */
    const DELETED_AT = 'deleted_date';
}
ログイン後にコピー
または、次のようにカスタマイズできます:

class User extends Model
{
    use SoftDeletes;
    public function getDeletedAtColumn()
    {
        return 'deleted_date';
    }
}
ログイン後にコピー

6. 変更されたモデル属性を取得します
getChanges() を使用します。変更された属性を取得するメソッド:

$user->getChanges()
//[
     "name" => "GeiXue",
  ]
ログイン後にコピー

7. モデルが変更されたかどうかを確認する Use
isDirty() このメソッドは、モデル内のデータが変更されたかどうかを検出できます。モデルが変更されました:

$user = App\User::first();
$user->isDirty();          //false
$user->name = "GeiXue";
$user->isDirty();          //true
ログイン後にコピー

isDirty() を使用すると、特定の属性が変更されたかどうかを直接検出することもできます:

$user->isDirty('name');    //true
$user->isDirty('age');     //false
ログイン後にコピー

8.モデルの元のデータモデルのプロパティに新しい値を割り当てる場合、
getOriginal() を通じて元の値を取得できます:

$user = App\User::first();
$user->name;                   //JellyBool
$user->name = "GeiXue";         //GeiXue
$user->getOriginal('name');    //JellyBool
$user->getOriginal();          //Original $user record
ログイン後にコピー

9. モデル データを更新するモデル データを更新するには、
refresh() を使用します。これは、tinker を使用する場合です。特に便利です:

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

最後に #上記の 9 つの Eloquent 機能は、特定のアプリケーション シナリオで実際に非常に役立ちます。Laravel プロジェクトを開発するときに役立つことを願っています。

以上がLaravel Eloquentの便利な9つの機能を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート