我在Laravel应用程序中创建了一个User类,如下所示:
<?php
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
...
public function hasAnyRoles()
{
return true;
}
为了本示例的目的,将函数简化为始终返回true。我几乎在这里按照本教程创建了这个类:http://alexsears.com/article/adding-roles-to-laravel-users。我按如下方式创建了一个控制器:
class WelcomeController extends Controller
{
public function welcomeAction()
{
$user = User::find(Auth::user()->id);
$result = $user->hasAnyRoles();
return Response::make("Result: ".$result);
}
}
我能够成功登录系统,路由按预期工作,变量$ user已正确初始化,我可以从中获取所有信息(用户名,ID,电子邮件等)但是一旦我调用我得到的$user->hasAnyRoles()
方法:
BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::hasAnyRoles()
如果我注释掉控制器中的相应行,它一切正常,但我不能在没有得到该错误的情况下调用该模型的任何方法。任何想法为什么会发生这种情况?
答案 0 :(得分:0)
尽管很愚蠢,但事实证明应用程序正在从另一个文件中读取User类。我将User_backup.php复制到同一目录中以防万一,这是从中读取类的文件,因此对User.php的任何更改都被忽略了。我不得不删除备份文件并进行编辑器更新,以使其全部正常工作..