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)
以下查询应该有效:
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)