无法从Model(PHP)调用静态方法

时间:2017-03-08 12:18:48

标签: php laravel

$page = new \App\Page::where('page', $pageName)->first();

它给了我一个错误:

syntax error, unexpected 'where' (T_STRING), expecting variable (T_VARIABLE) or '$'

有人可以告诉我第一行代码有什么问题吗?

2 个答案:

答案 0 :(得分:3)

问题在于操作的顺序。如果要生成新对象,则应首先执行此操作,然后在该对象上调用静态方法:

$page = (new \App\Page)::where('page', $pageName)->first();
        ^             ^

(不太有用,因为之后不使用该对象......)

如果您不想创建新对象,可以直接调用该方法:

$page = \App\Page::where('page', $pageName)->first();

答案 1 :(得分:2)

如果您使用的是Laravel,则应该如下所示:

$page = Page::all()->where('page', '=', $pageName)->first();