【问题标题】:Laravel findOrFail with related data?Laravel findOrFail 与相关数据?
【发布时间】:2016-02-01 01:34:37
【问题描述】:

在我的菜单控制器中,我有一个方法应该显示指定的记录及其所有子记录。

我有两个模型:MenuItemMenuVariation,我的项目将有很多变化,如我的方法中所述:

MenuItem 模型

public function variant()
    {
        return $this->hasMany('App\MenuVariation');
    }

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;
}

但这奇怪地返回所有项目及其变体。

有人可以帮我按需要完成这项工作吗?我仍想在 Item 记录上使用 FindOrFail,但它也应该检索任何变体(如果找到)。

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    findOrFail 将启动查询,因此您要切换顺序并将with 放在它的前面。然后使用findOrFail。见下文:

    public function show($id)
    {
        $item = MenuItem::with('variant')->findOrFail($id);
        return $item;
    }
    

    当你这样做时,也不需要get

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-19
      • 1970-01-01
      • 2021-09-23
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      相关资源
      最近更新 更多