我正在Laravel中为我的鸡尾酒应用程序编写一个自定义数据库查询。目标是检索以下结构:
等...
我的代码(见下文)当前返回3个对象,全部包含一个配方,但全部来自2个用户。甚至有可能构建所需的结构(参见上文),检索用户并将其食谱存储在称为食谱的数组/对象中吗?
$recipes = DB::table('users')
->join('recipes', 'users.id', '=', 'recipes.user_id')
->select(
'recipes.id as recipe_id',
'recipes.name as recipe_name',
'recipes.short as short',
'users.name as user_name'
)
->get();
答案 0 :(得分:2)
在Laravel中,使用口才。
在您的用户模型中,将关系添加到配方:
public function recipes()
{
return $this->hasMany('App\Recipe');
}
要调用它:
$recepies = App\User::find(1)->recipes;
答案 1 :(得分:1)
您无法使用查询获取此格式。
首先获取users
,然后获取recipes
。
然后使用循环格式化它们。
OR
使用雄辩的:)
$recepies = App\User::with('recipes')->get();
答案 2 :(得分:-1)
我认为这会起作用
$recipes = DB::table('users')
->select(
'recipes.id as recipe_id',
'recipes.name as recipe_name',
'recipes.short as short',
'users.name as user_name'
)
->where('recipes.user_id', '=', 'users.id')
->get();