欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel?Eloquent的九個實(shí)用特性詳解

 更新時間:2023年06月28日 11:22:10   作者:JellyBool  
這篇文章主要為大家介紹了LaravelEloquent的九個實(shí)用特性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

對于使用 Laravel 的開發(fā)者來說,可能都會驚嘆于 Eloquent Model 的強(qiáng)大,但是在強(qiáng)大的表面之下,其實(shí)還是有很多鮮為人知的特性的,本文即來分享十個 Laravel Eloquent 的強(qiáng)大特性。

1.更強(qiáng)大的 find() 方法

很多開發(fā)者在使用 find() 方法的時候,通常就只是在這里傳入一個 ID 的參數(shù),其實(shí)我們也是可以傳入第二個參數(shù)的:在 find() 方法中指定需要查找的字段

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

2.克隆 Model

直接使用 replicate() 方法即可,這樣我們就很容易地創(chuàng)建一個 Model 的副本:

$user = App\User::find(1);
$newUser = $user->replicate();
$newUser->save();
// 這樣,$newUser 和 $user 的基本數(shù)據(jù)就是一樣的

3.檢查 Model 是否相同

使用 is() 方法檢查兩個 Model 的 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.在關(guān)聯(lián)模型中同時保存數(shù)據(jù)

使用 push() 你可以在保存模型數(shù)據(jù)的同時,將所關(guān)聯(lián)的數(shù)據(jù)也保存下來:

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 的數(shù)據(jù)和 phone 的數(shù)據(jù)同時更新到數(shù)據(jù)庫中

5.自定義 deleted_at 字段

如果你使用過 Laravel 的軟刪除 Soft Delete 的話,你應(yīng)該就知道其實(shí) Laravel 在標(biāo)記一個記錄為已刪除的狀態(tài)其實(shí)是用 deleted_at 這個字段來維護(hù)的,其實(shí)你是可以自定義這個字段的:

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.獲取已修改的 Model 屬性

使用 getChanges() 方法獲取已被修改的屬性:

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

7.檢查 Model 是否被修改

使用 isDirty() 方法就可以檢測模型中的數(shù)據(jù)是否被修改:

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

在使用 isDirty() 的時候,你也可以直接檢測某個屬性是否被修改:

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

8.獲取 Model 的原始數(shù)據(jù)

在給 Model 的屬性賦予新值的時候,你可以通過 getOriginal() 來獲取原來的值:

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

9.刷新 Model 的數(shù)據(jù)

使用 refresh() 刷新 Model 的數(shù)據(jù),這在你使用 tinker 的時候特別有用:

$user = App\User::first();
$user->name;               // JellyBool
// 這個時候在其他地方,該用戶的名字被更新為 GeiXue,你可以使用 refresh 來刷新,而不用退出 tinker
$user->refresh(); 
$user->name;              // GeiXue

最后

上面的九個 Eloquent 特性其實(shí)在特定的應(yīng)用場景是非常有用的,希望能在你開發(fā) Laravel 項(xiàng)目的時候幫到你一點(diǎn)點(diǎn)。Happy Hacking

以上就是Laravel Eloquent的九個實(shí)用特性詳解的詳細(xì)內(nèi)容,更多關(guān)于Laravel Eloquent特性的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Laravel框架使用Seeder實(shí)現(xiàn)自動填充數(shù)據(jù)功能

    Laravel框架使用Seeder實(shí)現(xiàn)自動填充數(shù)據(jù)功能

    這篇文章主要介紹了Laravel框架使用Seeder實(shí)現(xiàn)自動填充數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了Laravel基于Seeder類實(shí)現(xiàn)自動填充數(shù)據(jù)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • Google Voice 短信發(fā)送接口PHP開源版(2010.5更新)

    Google Voice 短信發(fā)送接口PHP開源版(2010.5更新)

    Google Voice 短信發(fā)送接口PHP開源版,以前的版本不能用了,作者于2010年5月進(jìn)行了更新。
    2010-07-07
  • php寫的AES加密解密類分享

    php寫的AES加密解密類分享

    這篇文章主要介紹了php寫的AES加密解密類,實(shí)際是為YII框架寫的,不在YII框架時只需替換其中的兩句代碼即可使用,需要的朋友可以參考下
    2014-06-06
  • 基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作示例

    基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作示例

    這篇文章主要介紹了基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了thinkPHP5框架整合QueryList爬取數(shù)據(jù)存入mysql相關(guān)操作技巧及注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • PHP Laravel 上傳圖片、文件等類封裝

    PHP Laravel 上傳圖片、文件等類封裝

    這篇文章主要介紹了PHP Laravel 上傳圖片、文件等類封裝的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2017-08-08
  • PHP strtr() 函數(shù)使用說明

    PHP strtr() 函數(shù)使用說明

    轉(zhuǎn)換字符串中特定的字符。
    2008-11-11
  • PHP http請求超時問題解決方案

    PHP http請求超時問題解決方案

    這篇文章主要介紹了PHP http請求超時問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Laravel框架中自定義模板指令總結(jié)

    Laravel框架中自定義模板指令總結(jié)

    Blade 允許你自定義命令,你可以使用 directive 方法注冊命令。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Laravel框架中自定義模板指令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2017-12-12
  • PHP APC緩存配置、使用詳解

    PHP APC緩存配置、使用詳解

    本文詳細(xì)介紹了PHP APC模塊的簡介、參數(shù)配置、安裝步驟、使用實(shí)例,由于部份內(nèi)容是從PHP Manual中翻譯而來,可能存在不全面的地方。希望得到各位的指正
    2014-03-03
  • php a simple smtp class

    php a simple smtp class

    php a simple smtp class...
    2007-11-11

最新評論