【问题标题】:Laravel eager loading with eloquent-sluggable packageLaravel 使用 eloquent-sluggable 包进行急切加载
【发布时间】:2015-08-14 19:02:54
【问题描述】:

在使用 eloquent-sluggable 包时,我遇到了急切加载工作的问题。

有一个类Page,它与类MenuItem有关系

我需要在每次页面加载时加载页面以及相关的菜单项,但是在使用 With() 方法时

$page = Page::with('menuItems')->findBySlugOrId($id);

我得到了错误

BadMethodCallException in Builder.php line 1992:Call to undefined method Illuminate\Database\Query\Builder::findBySlugOrId()"

有没有办法通过With方法使用sluggable接口?或者有没有更好的方法来做到这一点,我错过了?

【问题讨论】:

    标签: php model laravel-5 eloquent


    【解决方案1】:

    正如错误所说,没有 findBySlugOrId 方法,findBySlug 是一种实际比较 slug_field 和给定值的方法。你可以这样做 Post::with('relation')->whereId($value)->findBySlug($value);按此顺序,因为 findBySlug 返回第一条记录,这意味着单个对象,您不能将 where 应用于单个对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-02
      • 2016-07-04
      • 2018-03-29
      • 2013-06-10
      • 2019-07-08
      • 2018-02-20
      • 2016-08-17
      • 1970-01-01
      相关资源
      最近更新 更多