2014-04-11 31 views
2

我想在laravel4.1中的類名爲User的用戶模型中使用自定義方法。我將$ table屬性更改爲我的表名,並在用戶模型中添加了一個自定義方法名稱「public function abc」。然後在我的用戶控制器我想是這樣的: -laravel中的自定義方法4.1模型不起作用

$u= new User; $u->abc();

,但它不工作,並給予下列錯誤: -

BadMethodCallException 調用未定義的方法照亮\數據庫\查詢\生成器: :abc()

我知道爲什麼發生這一切似乎很好,幫助我在這個傢伙。

UPDATE:解決了,做什麼 我不知道什麼是LARAVEL $u= new user; $u->abc();

我只是改變用戶到用戶和其開始工作,我甚至硝基甲苯知道爲什麼,誰知道原因的問題? ?

+0

我們可以看到您的實際模型類嗎? –

+0

你應該使用'User :: abc()'。 – user2094178

+0

@ user2094178不,他的功能是一種實例方法,不是靜態的。 –

回答

0

在模型中的每個方法獲得如果你實例化這樣

$user = User::find()->method(); 

,將工作的模型傳遞到一個新的QueryBuilder

User::where() 
User::find() 
User::{relationship}() 

。不要試圖讓你的雄辯模型太胖。 只需創建一個存儲庫,使您的控制器儘可能的瘦,你的雄辯就像它可以通過使用由雄辯提供的工具(關係,隱藏屬性,訪問器,增變器,$ this-> appends,...)

其他所有內容都屬於您的存儲庫。

0

嘗試運行

composer dumpautoload 

如果這不工作,確保只有一個叫做用戶在你的整個項目的類。可能會有一個軟件包,遷移或其他同名的東西。嘗試將您的自定義用戶類放在名稱空間中。

相關問題