laravel 4.1模型中的自定义方法不起作用

时间:2014-04-11 13:10:36

标签: php laravel

我正在尝试在用户模型中使用自定义方法,并在laravel4.1中使用类名User。我将$ table属性更改为我的表名,并在用户模型中添加了自定义方法名称'public function abc'。然后在我的用户控制器中我尝试这样: -

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

但它不起作用并发出以下错误: -

BadMethodCallException 调用未定义的方法Illuminate \ Database \ Query \ Builder :: abc()

我不知道为什么这一切似乎都很好,帮助我这些家伙。

更新:已解决,完成任何事情 我不知道什么是LARAVEL的问题 $u= new user; $u->abc();

我刚刚将User更改为用户并开始工作,我甚至不知道为什么,任何人都知道原因??

2 个答案:

答案 0 :(得分:0)

Model上的每个方法都传递给一个新的QueryBuilder

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

如果你实例化这样的模型

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

它会起作用。不要试图让你的Eloquent模型太胖。 只需创建一个存储库,通过使用Eloquent提供的工具(关系,隐藏属性,访问器和扩展器,$ this->追加,......),使控制器尽可能地薄,并使您的Eloquent尽可能地智能化。 )

其他所有内容都属于您的存储库。

答案 1 :(得分:0)

尝试运行

composer dumpautoload

如果这不起作用,请确保整个项目中只有一个名为User的类。可能有包,迁移或具有相同名称的内容。尝试将自定义User类放在命名空间中。