我试图在我的控制器中加载我的模型并尝试了这个:
return Post::getAll();
得到错误 Non-static method Post::getAll() should not be called statically, assuming $this from incompatible context
模型中的函数如下所示:
public function getAll()
{
return $posts = $this->all()->take(2)->get();
}
在控制器中加载模型然后返回其内容的正确方法是什么?
原文由 Sam Pettersson 发布,翻译遵循 CC BY-SA 4.0 许可协议
您将您的方法定义为非静态的,并尝试将其作为静态调用。那就是说…
1.如果你想调用一个静态方法,你应该使用
::
并将你的方法定义为静态。2.否则,如果要调用实例方法,则应实例化您的类,请使用
->
。注意:在 Laravel 中,几乎所有 Eloquent 方法都会返回模型的一个实例,允许您将方法链接起来,如下所示:
在该代码中,我们通过 Facade 静态 调用
all
方法。之后,所有其他方法都被称为 _实例方法_。