我有一个这样的表关系
Laravel框架关于急切加载特性的这个问题
我的热切加载代码如下:
$schedules = Schedule::whereHas(
'mahasiswa',
function($mahasiswa) use ($start, $limit, $order, $dir, $search) {
$mahasiswa->whereHas(
'document_thesises',
function($documentThesis) use ($start, $limit, $order, $dir, $search) {
$documentThesis->where('npm', 'LIKE', "%$search%")
->orWhere('name', 'LIKE', "%$search%")
->offset($start)
->limit($limit)
->orderBy($order, $dir);
});
}
)->get();
对于上表中的模型,代码如下: Mahasiswa 模型:
public function document_thesises()
{
return $this->hasMany(DocumentThesis::class, 'id', 'document_thesis_id');
}
文献论文模型:
public function mahasiswa()
{
return $this->belongsTo(Mahasiswa::class);
}
时间表模型:
public function mahasiswa()
{
return $this->belongsTo(Mahasiswa::class, 'mahasiswa_id', 'id');
}
我希望结果可以根据schedule表格显示表格中的所有数据document_thesis。但是,我得到了这样的错误:
exception: "Illuminate\Database\QueryException"
file: "/mnt/d/www/eta/vendor/laravel/framework/src/Illuminate/Database/Connection.php"
line: 664
message: "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'mahasiswas.document_thesis_id' in 'where clause' (SQL: select * from `schedules` where exists (select * from `mahasiswas` where `schedules`.`mahasiswa_id` = `mahasiswas`.`id` and exists (select * from `document_thesises` where `mahasiswas`.`document_thesis_id` = `document_thesises`.`id` order by `id` asc limit 10 offset 0) and `mahasiswas`.`deleted_at` is null))"
trace: [,…]
一只斗牛犬
忽然笑