您将方法定义为非静态方法,并且试图将其作为静态方法调用。那说…
> …如果你想调用一个静态方法,你应该使用::并将你的方法定义为静态。
// Defining a static method in a Foo class.
public static function getAll() { /* code */ }
// Invoking that static method
Foo::getAll();
> …否则,如果你想调用一个实例方法,你应该实例你的类,使用 – >。
// Defining a non-static method in a Foo class.
public function getAll() { /* code */ }
// Invoking that non-static method.
$foo = new Foo();
$foo->getAll();
注意:在Laravel中,几乎所有Eloquent方法都返回一个模型的实例,允许你链接方法如下所示:
$foos = Foo::all()->take(10)->get();
在该代码中,我们通过Facade静态调用all方法。之后,所有其他方法被称为实例方法。