我正在尝试构建一个包含三个模型的小型应用程序,我想按热切的加载关系按列对模型进行排序,为此,我有一个名为AssociatedCompany
的模型,如下所示:
class AssociateCompany extends Model {
protected $table = 'project_associate_company';
protected $fillable = [
'project_id', 'company_role_id', 'company_specialisation_id', 'company_id', 'link', 'file_name'
];
public function project()
{
return $this->belongsTo('App\Project','project_id','id');
}
public function companyRole()
{
return $this->belongsTo('App\Role', 'company_role_id','id');
}
}
和其他模型Role
如下:
class Role extends Model
{
protected $table='company_role';
protected $fillable = [
'sl', 'name', 'parent_id'
];
}
现在,我想获取相关项目的所有公司,并以sl
的角色进行梳理,为此,我正在尝试做join
这样的事情:
$companies = Project\AssociateCompany::whereHas('project', function ($q) use($request) {
$q->where('slug', $request->slug);
})
->with('companyRole')
->join('company_role', 'project_associate_company.id', '=', 'company_role.project_associate_company_id')
->orderBy('company_role.sl', 'desc')
->paginate(20);
因此我得到一个错误:
SQLSTATE [42S22]:找不到列:1054'on子句'中的未知列'company_role.project_associate_company_id'(SQL:从
project_associate_company
内部连接company_role
上的{ {1}}。project_associate_company
=id
。company_role
存在的地方(从project_associate_company_id
中选择*,其中projects
。project_associate_company
= {{1} }。project_id
和projects
= kovacek-rodriguez和id
。slug
为空)和projects
。deleted_at
为空)
在这方面帮助我。