Php 当两个表的列名相同时,连接关系表后的排序模型

Php 当两个表的列名相同时,连接关系表后的排序模型,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我正在Laravel上构建一个应用程序,在那里我有Project和LatestStatus模型,我有一个具有排序功能的表。因此,我可以按名称、其最新状态、上次更新者等进行排序。因此,这一架构是: projects id name -> string state -> string region -> string status -> enum ('saved', 'draft') created_at -> times

我正在
Laravel
上构建一个应用程序,在那里我有
Project
LatestStatus
模型,我有一个具有排序功能的表。因此,我可以按名称、其最新状态、上次更新者等进行排序。因此,这一架构是:

projects
    id
    name -> string
    state -> string
    region -> string
    status -> enum ('saved', 'draft')
    created_at -> timestamp
    updated_at -> timestamp

project_latest_status
    id
    project_id -> integer   // (project id foreign key)
    status -> string       //  (current status of project)
我想通过加入
latest_status
表对项目进行排序,并根据项目的当前状态进行排序。为此,我尝试了以下方法:

Project::where('status', 'saved')
    ->when( $request->name , function( $q) use( $request ) {
        $q->where('name', 'like', '%' . $request->name .'%');
    }) 
    ->when($request->status, function ($q) use($request) {
        $q->whereHas('latestStatus', function ($q) use($request){
            $q->whereHas('status', function ($q) use($request) {
                $q->whereIn('name',  collect($request->status)->pluck('name') );
            });
        });
    })
    ->when($request->sort_by_column, function ($q) use($request) {
        $q->when($request->sort_by_column['column'] == 'name' || $request->sort_by_column['column'] == 'website', function ($q) use($request) {
            $q->orderBy($request->sort_by_column['column'], $request->sort_by_column['order'] );
        })
        ->when($request->sort_by_column['column'] == 'added_date' , function ($q) use ($request) {
            $q->orderBy('created_at', $request->sort_by_column['order']);
        })
        ->when($request->sort_by_column['column'] == 'status', function ($q) use ($request) {
            $q->join('project_latest_status', 'projects.id', '=', 'project_latest_status.project_id')
                ->join('project_status', 'project_latest_status.status', '=', 'project_status.id')
                ->select('projects.*', 'project_status.name as status_name')
                ->orderBy('status_name', $request->sort_by_column['order']);
        })
    })->get();
一切正常,但只要我单击“状态排序”,就会出现错误:

SQLSTATE[23000]:完整性约束冲突:where子句中的1052列“状态”不明确(SQL:select count(*)作为
项目的
内部连接
项目的最新状态
项目的
id
=
项目的最新状态
项目的id
内部连接
项目的状态
项目的最新状态
状态
=
项目的状态
项目的状态
项目的状态
其中
状态s
=已保存和
项目
已删除\u在
处为空)

请帮我解决这个问题。谢谢你从哪里换车

where('status', 'saved')

或者,如果将
状态
与另一个联接表一起使用另一个相同的字段,则需要指定要按
状态进行筛选的表

where('projects.status', 'saved')