【问题标题】:Call to undefined method Illuminate\Database\Query\Builder::with() in Repository调用存储库中未定义的方法 Illuminate\Database\Query\Builder::with()
【发布时间】:2015-07-07 22:27:23
【问题描述】:

我正在尝试按照下面的教程进行操作,但由于某种原因,make 方法在我的情况下不起作用。当我尝试按照教程中的说明使用它时,出现错误:调用未定义的方法 Illuminate\Database\Query\Builder::with()

http://culttt.com/2014/03/17/eloquent-tricks-better-repositories/

public function make(array $with = array())
{
  return $this->model->with($with);
}

然后我尝试如下使用:

public function parents(array $with = array())
{
  $query = $this->make($with);

  return $query->whereNull('parent_id')->get();
}

这与教程中的代码略有不同,但应该没有区别。即使我使用完全相同的示例,它也会因上述错误而中断。

【问题讨论】:

  • 很抱歉,但那篇文章大部分都是废话,所以关闭它,忘记它,永远不要再看它。最好阅读这篇bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5,尽管它提供了更复杂的方法。你得到的错误说,你正在使用Query\Builder对象而不是Eloquent\Builder,所以解决这个问题,你会没事的。
  • 你能指出这篇文章为什么是废话吗?我找到了问题所在,我只是在尝试使用 with() 方法的关系中出现了拼写错误....
  • 它前后矛盾,有错误,而且标题具有误导性——这里面确实没有口才的技巧。我知道 Philip 在他的网站上提供了很多教程,我想很多人觉得它们很有帮助,但是这个很糟糕。

标签: laravel-4 eloquent query-builder


【解决方案1】:

事实证明,如果您在这种情况下尝试拉入的关系中有拼写错误,则会出现此错误。这非常令人困惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2020-01-04
    • 2018-10-03
    • 1970-01-01
    • 2019-04-02
    • 2016-11-25
    • 2017-07-19
    相关资源
    最近更新 更多