laravel技巧

laravel ORM 中的 withCount 可以統(tǒng)計(jì)相關(guān)聯(lián)數(shù)據(jù)的總數(shù),可以使用下面的方式獲取關(guān)聯(lián)數(shù)據(jù)的 sum硕淑,avg 课竣, max , min:

Orm::withCount(['relation as relation_sum' =>function($query){
    $query->select(DB::raw("sum(amount) as relationsum"));
}])
  • 獲取購買視頻的人以及購買視頻的訂單支付總額
 $pay_video_user_list = Video::query()
            ->with(['payVideoOrders', 'payVideoOrders.user'])
            ->withCount(['payVideoOrders as pay_video_amount_sum' => function ($query) {
                $query->select(\DB::raw("if(sum(amount) <> 0, sum(amount), 0)"));
            }])
            ->where('id', $request->input('id'))
            ->paginate($limit);
  • selectRaw能寫多條組合語句
'count(*), min(some_field) as someMin, max(another_field) as someMax'
TakeDeliveryAddress::query()
            ->selectRaw('*, if(id = ?, 1, 2) as have_default', [$user['default_take_delivery_address_id']])


  • 處理關(guān)注人與粉絲的例子
 * followers 表
 * id     user_id     follower_id
 * 1       2             3         // 用戶3關(guān)注了用戶2置媳。也就是說用戶3是用戶2 的粉絲于樟。
 * 2       4             2         // 用戶2關(guān)注了用戶4。也就是說用戶2是用戶4的粉絲拇囊。
 * 3       3             2         // 和第一條相反迂曲。兩人互相關(guān)注。 用戶2也是用戶3的粉絲寂拆。
 *
 *
 * belongsToMany(1,2,3,4)
 * 四個(gè)參數(shù)意思:
 *  1奢米、目標(biāo)model的class全稱呼。
 *  2纠永、中間表名
 *  3鬓长、中間表中當(dāng)前model對應(yīng)的關(guān)聯(lián)字段
 *  4、中間表中目標(biāo)model對應(yīng)的關(guān)聯(lián)字段
 *
 *   獲取粉絲:(重點(diǎn):這里粉絲也是用戶尝江。所以就把User 模型也當(dāng)粉絲模型來用)
 *  eg: belongsToMany(User::class,'followers','user_id','follower_id');
 *      粉絲表,中間表,當(dāng)前model在中間表中的字段,目標(biāo)model在中間表中的字段涉波。
public function followers()
{
    return $this->belongsToMany(User::Class, 'followers', 'user_id', 'follower_id');
}

/**
 *用戶關(guān)注人列表
 * 關(guān)注人列表,關(guān)聯(lián)表炭序,當(dāng)前model在中間表中的字段啤覆,目標(biāo)model在中間表中的字段。
 */
public function followings(){
    return $this->belongsToMany(User::class,'followers','follwer_id','user_id');
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惭聂,一起剝皮案震驚了整個(gè)濱河市窗声,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辜纲,老刑警劉巖笨觅,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異耕腾,居然都是意外死亡见剩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門扫俺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苍苞,“玉大人,你說我怎么就攤上這事狼纬「牵” “怎么了骂际?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長担巩。 經(jīng)常有香客問我方援,道長,這世上最難降的妖魔是什么涛癌? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮送火,結(jié)果婚禮上拳话,老公的妹妹穿的比我還像新娘。我一直安慰自己种吸,他們只是感情好弃衍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坚俗,像睡著了一般镜盯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猖败,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天速缆,我揣著相機(jī)與錄音,去河邊找鬼恩闻。 笑死艺糜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幢尚。 我是一名探鬼主播破停,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尉剩!你這毒婦竟也來了真慢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤理茎,失蹤者是張志新(化名)和其女友劉穎黑界,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體功蜓,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡园爷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了式撼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片童社。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖著隆,靈堂內(nèi)的尸體忽然破棺而出扰楼,到底是詐尸還是另有隱情呀癣,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布弦赖,位于F島的核電站项栏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蹬竖。R本人自食惡果不足惜沼沈,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望币厕。 院中可真熱鬧列另,春花似錦、人聲如沸旦装。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阴绢。三九已至店乐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呻袭,已是汗流浹背眨八。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棒妨,地道東北人踪古。 一個(gè)月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像券腔,于是被迫代替她去往敵國和親伏穆。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 在關(guān)系式數(shù)據(jù)庫中纷纫,要定義一個(gè)符合范式的多對多表關(guān)系需要一個(gè)中間表作為兩個(gè)表的關(guān)系枕扫。在Laravel中這個(gè)表稱為pi...
    leo108閱讀 4,639評論 4 14
  • 定時(shí)任務(wù) Scheduled Tasks 是 Laravel 提供的組件之一,稍微上點(diǎn)規(guī)模的項(xiàng)目應(yīng)該都會用到辱魁,比如...
    leo108閱讀 6,838評論 4 21
  • 強(qiáng)制 Laravel 使用 HTTPS在你的Providers\AppServiceProvider的boot方法...
    purewater2014閱讀 551評論 0 0
  • 自定義HTTP錯(cuò)誤頁面 描述:自定義錯(cuò)誤頁面砾赔,例如404頁面不存在、500服務(wù)器錯(cuò)誤... 解決: Larave5...
    JunChow520閱讀 442評論 0 0
  • 1.路由:通過路由將請求發(fā)送至處理函數(shù) 2.Laravel是簡潔優(yōu)雅的PHP web開發(fā)框架,具有富于表達(dá)性且簡潔...
    Mr丶T閱讀 1,339評論 0 0