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


custom method in laravel 4.1 model not working

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

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

但它不工作,并给出以下错误:-

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

我不知道为什么会发生这种事,一切看起来都很好,帮我解决这个问题。

更新:解决了,什么都没做我不知道拉拉威尔出了什么问题$u= new user;$u->abc();

我刚把用户改成了用户,它开始工作了,我甚至不知道为什么,有人知道原因吗??

模型上的每个方法都会传递给新的QueryBuilder

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

如果你实例化一个像这样的模型

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

它会起作用的。不要试图让你的Eloquent模特太胖。只需创建一个存储库,通过使用Eloquent提供的工具(关系、隐藏属性、访问器和赋值器、$this->appends…),使您的控制器尽可能薄,使Eloquet尽可能智能

其他一切都属于您的存储库。

尝试运行

composer dumpautoload

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