我的laravel app就像这样:
people_id
和pet_id
的数据透视表)。还有4列abbility1_id
,abbility2_id
,abbility3_id
和abbility4_id
。现在..我构建了一个API方法来返回用户宠物,它看起来像这样:
public function pets()
{
return $this->belongsToMany(Pet::Class, 'user_pets')->withPivot(
'abbility1_id',
'abbility2_id',
'abbility3_id',
'abbility4_id'
)->orderBy('position','asc');
}
使$user->pets
返回宠物的用户列表,其中包含user_pets的枢轴信息和abbility id。
问题 我想要做的是将json对象添加到此方法结果名为" abbilities"并从 Abbilities 模型/控制器中获取名称和描述等可能性的数据。
如何从ID中添加我的查询中的abbilities信息?
当前API CALL的输出:
所需输出:每个宠物对象内的Abbilities数组,其中包含$user->pets->pivot->attack1_id
答案 0 :(得分:0)
您可以使用查询构建器和orWhere
来获取数据。我不认为你可以通过与你设置方式的关系来访问它。
我不知道你如何访问你的宠物能力ID,但我猜它就像$pet->abbility1_id
。
$abbilities = Abbilities::where('id', '=', $pet->abbility1_id)
->orWhere('id', '=', $pet->abbility2_id)
->orWhere('id', '=', $pet->abbility3_id)
->orWhere('id', '=', $pet->abbility4_id)
->get();