在Laravel中排序具有雄心勃勃的加载关系的雄辩模型

时间:2018-08-07 16:59:47

标签: laravel eloquent laravel-5.6

我正在尝试构建一个包含三个模型的小型应用程序,我想按热切的加载关系按列对模型进行排序,为此,我有一个名为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 = idcompany_role存在的地方(从project_associate_company_id中选择*,其中projectsproject_associate_company = {{1} }。project_idprojects = kovacek-rodriguez和idslug为空)和projectsdeleted_at为空)

在这方面帮助我。

0 个答案:

没有答案