美文网首页
laravel ORM

laravel ORM

作者: jacklin1992 | 来源:发表于2018-01-31 19:57 被阅读60次

    关联查询

    需求:三张表 合同 账单 账单明细(明细关联账单id,账单关联合同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中两个key的位置 再试试hasMany 和 with能不能实现

    预加载

    场景: 比如 每个合同有很多账单 你定义了一个关联,contract hasMany bill

    image.png

    语句打印出的语句如下


    image.png

    但是,假如这么写


    image.png
    语句是下面这样
    image.png

    这就是预加载,还有所谓的n+1问题。

    相关文章

      网友评论

          本文标题:laravel ORM

          本文链接:https://www.haomeiwen.com/subject/frqxixtx.html