Laravel:加入 Eloquent 模型

Olo*_*f84 2 join laravel eloquent

问题。我如何使用 Eloquent 来生成此查询:

从营销活动中选择营销活动.名称、用户名称 LEFT JOIN 用户在营销活动.gamemaster_id = users.id 上,其中营销活动.状态 = 1

活动

id  gamemaster_id name        status
1   1             campaign1   1
2   2             campaign2   1
Run Code Online (Sandbox Code Playgroud)

用户

id name
1  rick
2  bob
Run Code Online (Sandbox Code Playgroud)

结果

id gamemaster_id name      status gamemaster_name
1  1             campaign1 1      rick
2  2             campaign2 1      bob
Run Code Online (Sandbox Code Playgroud)

活动模型

class Campaign extends Model
{
    public function gamemaster()
    {
        return $this->belongsTo('App\User', 'gamemaster_id');
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使雄辩,但失败了:

$result = Campaign::where('status', '=', 1)->with('gamemaster')->select('name')->orderBy('users.updated_at', 'desc')->get();
Run Code Online (Sandbox Code Playgroud)

Tro*_*han 5

以下查询应该有效:

Campaign::whereStatus(1)
    ->join('users', 'campaigns.gamemaster_id', '=', 'users.id')
    ->select('campaigns.name', 'users.name')
    ->orderBy('users.updated_at', 'desc')
    ->get()
Run Code Online (Sandbox Code Playgroud)