Php Laravel5.4:在LaravelEloquent中转换原始SQL查询

Php Laravel5.4:在LaravelEloquent中转换原始SQL查询,php,mysql,sql,laravel,eloquent,Php,Mysql,Sql,Laravel,Eloquent,我正试图重写这个SQL查询,但我在这一点上卡住了 该查询旨在通过使用子查询将projects表连接到project_progress表,以仅连接最新条目 SELECT * FROM projects JOIN project_progress ON project_progress.id = ( SELECT id FROM project_progress WHERE project_progress.project_id = projects.id ORDER BY

我正试图重写这个SQL查询,但我在这一点上卡住了

该查询旨在通过使用子查询将projects表连接到project_progress表,以仅连接最新条目

SELECT * FROM projects
JOIN project_progress ON project_progress.id = 
(
    SELECT id FROM project_progress
    WHERE project_progress.project_id = projects.id
    ORDER BY project_progress.created_at DESC
    LIMIT 1
)
WHERE project_progress.next_action_date < NOW()
AND projects.status != 'Complete'
AND projects.member_id = 1
ORDER BY projects.title ASC
ErrorException(E_ERROR)strtolower()要求参数1为字符串,对象为给定的\vendor\larvel\framework\src\light\Database\Grammar.php


“我觉得这句话有点不对劲”你为什么会出错?还是返回了错误的结果?您可以使用
->toSql()
函数检查生成的SQLErrorException(E_ERROR)strtolower()期望参数1为字符串,object-given\vendor\laravel\framework\src\illighte\Database\Grammar.php
$projects = App\Project::where('member_id', 1)
    ->join('project_progress', function ($join) {
        $join->on('project_progress.id', '=', function ($query) {
            $query->select('project_progress.id')
                ->from('project_progress')
                ->where('project_progress.project_id', 'projects.id')
                ->orderBy('project_progress.created_at', 'desc')
                ->limit(1);
        });
    })
    ->where('project_progress.next_action_date', '<', Carbon\Carbon::now())
    ->notCompleted()
    ->orderBy('projects.project_title', 'asc')
    ->get();
$join->on('project_progress.id', '=', function ($query) {
$join->where('project_progress.id', '=', function ($query) {