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>