$ roles必须是字符串数组或RoleInterface实例,但必须是对象

时间:2011-12-13 16:38:46

标签: symfony doctrine-orm

这与Symfony2和Doctrine2有关。我在我的用户实体中有这个:

public function getRoles()
{
    return $this->roles->toArray();
}

然而,它正在回归:

 array(object(Role))

我可以开始寻找任何想法吗?我已经调试了一段时间。

2 个答案:

答案 0 :(得分:2)

这是逻辑行为;默认情况下,Doctrine2返回一个Collection对象,并通过调用toArray()将其转换为数组。但是你的数组仍然包含Role个对象,它们基本上不是字符串。当然,您可以定义自己的方法来将其作为字符串,我认为基本上您只需要调用Role::getRole()

看看this article,它可能对您有所帮助。

答案 1 :(得分:1)

我在跟踪Cookbook Tutorial on Loading Users From Database之后发现了这个错误,也许这就是你的情况。

事实证明,我忘了在我的RoleInterface实体对象(我的Role实体引用的对象)上实现User。就是这样。