laravel ORM

關(guān)聯(lián)查詢

需求:三張表 合同 賬單 賬單明細(xì)(明細(xì)關(guān)聯(lián)賬單id,賬單關(guān)聯(lián)合同id)

    $res = \App\Model\BillDetail::whereHas('getDeposit', function ($query) {
        $query->where('contract_order_guid', '3f7242d2d8f911e7afcdafa3cdc44eb6');
    })->get();
    dd($res);

    public function getDeposit()
    {
        return $this->belongsTo('App\Model\ContractBill', 'bill_guid', 'guid')->where('type', config('status.contract_bill_type_deposit'))->where('status', config('status.bill_detail_able'));
    }

注意:whereHas belongsTo 和model中兩個(gè)key的位置 再試試hasMany 和 with能不能實(shí)現(xiàn)

預(yù)加載

場景: 比如 每個(gè)合同有很多賬單 你定義了一個(gè)關(guān)聯(lián),contract hasMany bill

image.png

語句打印出的語句如下


image.png

但是,假如這么寫


image.png

語句是下面這樣
image.png

這就是預(yù)加載,還有所謂的n+1問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 緣起 后端開發(fā)的基本操作就是處理數(shù)據(jù) -- "增刪改查 / CURD", 而 Laravel 框架的"對象關(guān)系映射...
    patiencing閱讀 10,774評論 0 6
  • 1.分別給User表和comments配置別名:User::from('user as u')->join('co...
    金星show閱讀 1,897評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • Eloquent: 關(guān)聯(lián)模型 簡介 數(shù)據(jù)庫中的表經(jīng)常性的關(guān)聯(lián)其它的表。比如,一個(gè)博客文章可以有很多的評論,或者一個(gè)...
    Dearmadman閱讀 17,544評論 6 16
  • 每個(gè)姑娘在遇到愛情之前都是明媚的冬日暖陽,后來,那個(gè)人來了,走了,姑娘的心空就有了陰霾! 再理智的姑娘也...
    落雪無聲閱讀 724評論 5 6

友情鏈接更多精彩內(nèi)容