2017-03-08 24 views
0
$page = new \App\Page::where('page', $pageName)->first(); 

它給了我一個錯誤:不能從模型調用靜態方法(PHP)

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

有人可以告訴我什麼是錯的第一行代碼?

+0

什麼是'where'方法樣子或什麼框架是什麼? – nerdlyist

+0

@nerdlyist它的laravel,在文檔中是一樣的 – Skrudox

+0

你可以包含〜該行上面的15行嗎? –

回答

3

的問題是操作的順序。如果你想生成一個新的對象,你應該做的,然後再調用該靜態方法:

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

(不是你不使用的對象之後的對象非常有用......)

如果你不希望創建一個新的對象,就可以直接調用方法:

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

很好的答案,謝謝,我錯過了這個「新」關鍵字 – Skrudox

2

如果使用Laravel,這應該是這樣的:

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

這個作品太多了,但是它的記號長一點 – Skrudox

相關問題