首頁 >php框架 >Laravel >你知道Laravel ORM 中的騷操作嗎

你知道Laravel ORM 中的騷操作嗎

藏色散人
藏色散人轉載
2020-05-18 16:26:073079瀏覽

以下由Laravel入門教學專欄為大家介紹Laravel ORM 中你不知道的騷操作,希望對需要的朋友有幫助!

你知道Laravel ORM 中的騷操作嗎

append

    class User extends Model
    {
        protected $appends = ['is_adult'];
        public function getIsAdultAttribute()
        {
            return $this->attribute['age'] > 18;
        }
    }

這個操作大家是不是都用過,在模型裡新增一個資料庫不存在的字段,非常方便。但是 $appends 是全域的,所有的查詢中都會加入 is_adult 這個欄位。

User::select('id', 'name')->first();

像這樣查詢的時候甚至會報錯提示 age 欄位不存在。

我們可以像這樣,在查詢的時候再將 is_adult 加入到查詢結果集中。

    $user = User::first();
    $user->append('is_adult');

你以為這樣就結束了?不只如此,如果我們查詢的是多個使用者怎麼辦,難道自己 for 迴圈 append 一遍麼?不不不,我們優雅的 Laravel 已經為我們考慮過了。

    $user = User::paginate(10);
    $user->each->append('is_adult');

query

     User::where(&#39;sex&#39;, &#39;girl&#39;)->where(&#39;age&#39;, &#39;<=&#39;, 20)->where(&#39;money&#39;, &#39;>&#39;, 1000000000000)->get();

這種查詢語句大家是不是常常寫啊?有沒有發現一個問題?本來找富蘿莉就挺難得,還沒有提示。

你知道Laravel ORM 中的騷操作嗎

這怎麼能忍,稍稍改寫一下,在最前面加個 query ,輕輕鬆松娶富蘿莉走上人生巔峰。

你知道Laravel ORM 中的騷操作嗎

where

富蘿莉沒找到的話,降低點要求正兒八經找個女朋友吧。雖然有點難,但是如果你知道她的 ID,你可以直接使用

User::query()->find(2);

找到她,簡單又快速。那要是不知道 ID 只知道名字的情況下咋整呢?寫 where 條件?告訴你個更快捷的方法,畢竟找女朋友不能等。

User::query()->firstWhere([&#39;name&#39; => &#39;乔碧萝&#39;]);

先寫這麼多,發現其他騷操作再更。

更多laravel框架技術文章,請造訪laravel#教學!

以上是你知道Laravel ORM 中的騷操作嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除