婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Laravel關聯模型中過濾結果為空的結果集(has和with區別)

Laravel關聯模型中過濾結果為空的結果集(has和with區別)

熱門標簽:400 電話 辦理 地圖標注怎么做商戶驗證 智能電銷語音機器人資訊 亳州企業外呼系統 打開百度地圖標注 兼職做地圖標注好賺錢嗎 海南外呼系統方案 蘇州外呼系統有效果嗎 山東電銷卡外呼系統原理是什么

首先看代碼:

$userCoupons = UserCoupons::with(['coupon' => function($query) use($groupId){
 return $query->select('id', 'group_id', 'cover', 'group_number', 'group_cover')->where([
   'group_id' => $groupId,
 ]);
}])
// 更多查詢省略...

數據結構是三張表用戶優惠券表(user_coupons)、優惠券表(coupons),商家表(corps),組優惠券表(group_coupons) (為了方便查看,后兩項已去除)

這里我本意想用模型關聯查出用戶優惠券中屬于給定組gourpId的所有數據(如果為空該條數據就不返回)。

但有些結果不是我想要的:

array(20) {
 ["id"]=>
 int(6)
 ["user_id"]=>
 int(1)
 ["corp_id"]=>
 int(1)
 ["coupon_id"]=>
 int(4)
 ["obtain_time"]=>
 int(1539739569)
 ["receive_time"]=>
 int(1539739569)
 ["status"]=>
 int(1)
 ["expires_time"]=>
 int(1540603569)
 ["is_selling"]=>
 int(0)
 ["from_id"]=>
 int(0)
 ["sell_type"]=>
 int(0)
 ["sell_time"]=>
 int(0)
 ["sell_user_id"]=>
 int(0)
 ["is_compose"]=>
 int(0)
 ["group_cover"]=>
 string(0) ""
 ["is_delete"]=>
 int(0)
 ["score"]=>
 int(100)
 ["created_at"]=>
 NULL
 ["updated_at"]=>
 NULL
 ["coupon"]=>
 NULL // 注意返回了coupons為空的數據
}

記錄中有的coupon有記錄,有的為空。想想也是,with只是用sql的in()實現的所謂預加載。無論怎樣主user_coupons的數據都是會列出的。

它會有兩條sql查詢,第一條查主數據,第二條查關聯,這里第二條sql如下:

select `id`, `group_id`, `cover`, `group_number`, `group_cover` from `youquan_coupons` where `youquan_coupons`.`id` in (1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14) and (`group_id` = 1) and `youquan_coupons`.`deleted_at` is null

如果第二條為空,主記錄的關聯字段就是NULL。

后來看到了Laravel關聯的模型的has()方法,has()是基于存在的關聯查詢,下面我們用whereHas()(一樣作用,只是更高級,方便寫條件)

這里我們思想是把判斷有沒有優惠券數據也放在第一次查詢邏輯中,所以才能實現篩選空記錄。

加上whereHas()后的代碼如下

$userCoupons = UserCoupons::whereHas('coupon', function($query) use($groupId){
  return $query->select('id', 'group_id', 'cover', 'group_number', 'group_cover')->where([
   'group_id' => $groupId,
  ]);
 })->with(['coupon' => function($query) use($groupId){
  return $query->select('id', 'group_id', 'cover', 'group_number', 'group_cover');
 }])-> // ...

看下最終的SQL:

select * from `youquan_user_coupons` where exists (select `id`, `group_id`, `cover`, `group_number`, `group_cover` from `youquan_coupons` where `youquan_user_coupons`.`coupon_id` = `youquan_coupons`.`id` and (`group_ids` = 1) and `youquan_coupons`.`deleted_at` is null) and (`status` = 1 and `user_id` = 1)

這里實際上是用exists()篩選存在的記錄。然后走下一步的with()查詢,因為此時都篩選一遍了,所以with可以去掉條件。

顯然區分這兩個的作用很重要,尤其是在列表中,不用特意去篩選為空的數據,而且好做分頁。

總結

以上所述是小編給大家介紹的Laravel關聯模型中過濾結果為空的結果集(has和with區別),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • PHP laravel中的多對多關系實例詳解
  • Laravel 關聯模型-關聯新增和關聯更新的方法
  • laravel學習教程之關聯模型
  • 圖文詳解laravel多對多關聯模型

標簽:紹興 萊蕪 清遠 呼倫貝爾 金華 溫州 綏化 安康

巨人網絡通訊聲明:本文標題《Laravel關聯模型中過濾結果為空的結果集(has和with區別)》,本文關鍵詞  Laravel,關聯,模型,中,過濾,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Laravel關聯模型中過濾結果為空的結果集(has和with區別)》相關的同類信息!
  • 本頁收集關于Laravel關聯模型中過濾結果為空的結果集(has和with區別)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜a成v人精品| 国产亚洲精品bt天堂精选| 成人av在线一区二区三区| 日韩黄色一级片| 99久久777色| 日韩欧美123| 精品88久久久久88久久久| 精品理论电影在线| 精品美女一区二区三区| 欧美激情中文字幕一区二区| 国产欧美一区二区精品性色| 国产一区二区0| 欧美三级视频在线观看| 精品国产亚洲在线| 亚洲v中文字幕| 色综合一个色综合亚洲| 7777精品伊人久久久大香线蕉完整版| 国产精品美女视频| 狠狠色狠狠色合久久伊人| 成人激情综合网站| 一区精品在线播放| 免费视频最近日韩| 91丨九色丨黑人外教| 56国语精品自产拍在线观看| 日韩高清国产一区在线| 欧美高清视频一二三区 | 韩国女主播成人在线| 日韩一级免费观看| 国产suv精品一区二区三区| 久久精品亚洲精品国产欧美kt∨| 精品视频免费在线| 洋洋av久久久久久久一区| 欧美一区二区三区免费| 成人动漫一区二区| 国产综合久久久久影院| 亚洲午夜视频在线观看| 欧美激情在线观看视频免费| 欧美日韩免费观看一区三区| 99视频一区二区| 9色porny自拍视频一区二区| 国产一区二区调教| 久久av中文字幕片| 狠狠色综合播放一区二区| 欧美色男人天堂| 免费在线观看一区| www.色精品| 国产精品一二三| 国产精品系列在线观看| 国产不卡在线一区| 久久精品亚洲国产奇米99| 青青草一区二区三区| 日韩午夜小视频| 国产成人免费网站| 国产中文字幕一区| 亚洲一级不卡视频| 中文字幕国产一区| 日韩免费看的电影| 欧美美女一区二区在线观看| 成人av在线影院| 岛国精品一区二区| 色成年激情久久综合| 欧美美女bb生活片| 久久嫩草精品久久久精品| 亚洲福利一区二区| 亚洲精品国产无天堂网2021| 久久久www成人免费毛片麻豆| 欧美日韩精品一区二区| 成人avav在线| 欧美午夜一区二区三区| 精品国产乱码久久久久久闺蜜| 国产欧美日韩三级| 亚洲国产日产av| 成人手机在线视频| 一本色道a无线码一区v| 91香蕉视频在线| 91捆绑美女网站| 欧美综合天天夜夜久久| 欧美日韩视频在线第一区| 亚洲激情自拍偷拍| 国产99久久精品| 日韩欧美国产电影| 亚洲国产中文字幕| 粉嫩绯色av一区二区在线观看| 欧美一级高清片在线观看| 日韩一区二区精品在线观看| 国产精品丝袜久久久久久app| 国产亚洲一区二区三区在线观看| 国产精品人成在线观看免费| 亚洲一区二区在线视频| 成人动漫视频在线| 亚洲免费三区一区二区| 欧美日韩精品一区视频| 亚洲国产一区二区三区青草影视| 成人午夜av影视| 欧美色网站导航| 久久日一线二线三线suv| 香港成人在线视频| 欧洲另类一二三四区| 久久久久久久性| 99v久久综合狠狠综合久久| 亚洲日本在线天堂| 欧美日韩色综合| 国产毛片精品视频| 国产成a人亚洲| 久久久久久久久久久99999| 日韩电影免费一区| 欧美一区二区三区爱爱| 毛片基地黄久久久久久天堂| 欧美精品一区二区三区蜜桃| av一二三不卡影片| 亚洲一卡二卡三卡四卡五卡| 蜜桃视频在线观看一区二区| 中文天堂在线一区| 日韩精品专区在线影院重磅| 激情伊人五月天久久综合| 国产剧情一区二区三区| 4438x成人网最大色成网站| 中文字幕一区二区三区蜜月 | 久久婷婷国产综合精品青草| 99综合电影在线视频| 欧美三日本三级三级在线播放| 国产精品久久看| 欧美在线免费视屏| 国产精品一区二区久久不卡| 亚洲综合成人网| 欧美日韩成人在线一区| 亚洲成人你懂的| 69堂精品视频| 国产自产高清不卡| 制服视频三区第一页精品| 亚洲午夜久久久| 91精品午夜视频| 日本午夜精品视频在线观看 | 91看片淫黄大片一级在线观看| 精品日韩av一区二区| 成人自拍视频在线| 国产在线精品一区在线观看麻豆| 国产精品久久久久久久午夜片| 在线视频欧美精品| 日本 国产 欧美色综合| 亚洲欧美影音先锋| 久久精品综合网| 欧美激情在线观看视频免费| 久久午夜羞羞影院免费观看| 欧美亚洲另类激情小说| 色婷婷国产精品久久包臀 | 高清不卡一区二区| 成人免费一区二区三区在线观看| 91精品欧美福利在线观看| 日韩女优毛片在线| 欧美日韩国产在线观看| 91免费观看视频| 欧美三级在线视频| 欧美日韩精品免费观看视频 | 日本精品视频一区二区| 在线欧美日韩精品| 777亚洲妇女| 日韩欧美激情一区| 欧美日韩免费一区二区三区视频| 99天天综合性| 精品国产91九色蝌蚪| 国产精品的网站| 亚洲国产精品久久久久秋霞影院| 国产成人综合在线观看| 91同城在线观看| 亚洲精品一区二区三区福利| 亚洲.国产.中文慕字在线| 成人一区二区视频| 亚洲日本一区二区| 色猫猫国产区一区二在线视频| 蜜桃精品视频在线观看| 久久精品国产久精国产爱| 国产高清久久久| av激情成人网| 欧美一级免费观看| 亚洲成人黄色小说| 91玉足脚交白嫩脚丫在线播放| 精品成人私密视频| 精品一区二区三区在线播放视频| 欧美一二三四在线| 国产乱人伦精品一区二区在线观看| 久久久久久久免费视频了| 成人免费毛片片v| 亚洲大片精品永久免费| 91精品婷婷国产综合久久| 91在线无精精品入口| 免播放器亚洲一区| 一区二区三区免费网站| 99精品热视频| 亚洲影院理伦片| 日韩一区二区免费高清| 成人动漫中文字幕| 丝袜美腿高跟呻吟高潮一区| 欧美电影免费观看高清完整版在线观看| 国产精品正在播放| 日韩高清在线不卡| 亚洲自拍偷拍av| 精品国产髙清在线看国产毛片| 国产精品2024| 免费高清在线一区|