Laravel多表(3张表以上)用with[]关联查询

Laravel框架多表关联查询

一、Model关联模型(关联表--中间表),用反向关联关系

//订单记录表
class XXXXAccess extends Model
{
    //
    use SoftDeletes;
    protected $dates = ['deleted_at'];




    //表1
    public function YYYY(){
        return $this->belongsTo('App\Models\YYYY','YYYY_id',id);
    }


    //表2
    public function ZZZZ(){
        return $this->belongsTo('App\Models\ZZZZ','ZZZZ_id','id');
    }

    //表3
    public function HHHH(){
        return $this->belongsTo('App\Models\HHHH','HHHH_id','id');
    }

    //更多表。。。
    public function 方法名(){
        return $this->belongsTo('App\Models\模型名','ZZZZ_id','id');
    }
}

二、Controller控制器里面的查询(并添加where条件)

$list=XXXXAccess::with([
    'YYYY'=>function($query){
        return $query->where('title', 'like', '%first%');
    },
    'ZZZZ'=>function($query){
        return $query->where('title', 'like', '%first%');
    },
    '模型定义的方法名'=>function($query){
        return $query->where('title', 'like', '%first%');
    }
    ])->get();

如果使用外面的条件变量,则要使用如下

$list=XXXXAccess::with([
    'YYYY'=>function($query) use ($条件变量){
        return $query->where($条件变量);
    },
    'ZZZZ'=>function($query) use ($条件变量){
        return $query->where($条件变量);
    },
    '模型定义的方法名'=>function($query){
        return $query->where($条件变量);
    }
    ])->get();

三、view前端模板变量输出(可以在控制器自已打印输入看)

<td>
    {{$list['YYYY']['字段名']}}
</td>

<td>
    {{$list['模型方法名']['字段名']}}
</td>

猜你喜欢

转载自blog.csdn.net/itbird58/article/details/88900628
今日推荐