Php Laravel findOrFail有相关数据吗?
在我的菜单控制器中,我有一个显示指定记录及其所有子项的方法 我有两种模型:Php Laravel findOrFail有相关数据吗?,php,laravel,eloquent,Php,Laravel,Eloquent,在我的菜单控制器中,我有一个显示指定记录及其所有子项的方法 我有两种模型:MenuItem和MenuVariation,我的项目将有许多方法中概述的变化: 菜单项模型 public function variant() { return $this->hasMany('App\MenuVariation'); } public function item() { return $this->belongsTo('App\Men
MenuItem
和MenuVariation
,我的项目将有许多方法中概述的变化:
菜单项模型
public function variant()
{
return $this->hasMany('App\MenuVariation');
}
public function item()
{
return $this->belongsTo('App\MenuItem', 'menu_item_id');
}
菜单变量模型
public function variant()
{
return $this->hasMany('App\MenuVariation');
}
public function item()
{
return $this->belongsTo('App\MenuItem', 'menu_item_id');
}
现在,在我的控制器中,我有以下方法:
public function show($id)
{
$item = MenuItem::findOrFail($id);
return $item;
}
…它当前只显示项目记录,而不显示其变体,因此我更改了如下代码
public function show($id)
{
$item = MenuItem::findOrFail($id)->with('variant')->get();
return $item;
}
但这会奇怪地返回所有项目及其变体
有人能帮我按要求工作吗?我仍然希望在项目记录上使用FindOrFail,但它也应该检索任何变体(如果找到)。
FindOrFail
将启动查询,因此您希望切换顺序并将与放在它前面。然后使用findOrFail
。见下文:
public function show($id)
{
$item = MenuItem::with('variant')->findOrFail($id);
return $item;
}
这样做时也不需要get