搜索了2天后尝试了许多不同的解决方案,但找不到答案。我按照教程(http://roberto.costumero.es/2011/08/15/creando-un-login-simple-con-symfony2/)的步骤来建立一个简单的登录过程,其中我有:登录中的角色未存储在安全上下文的用户
- 表用户
- 表的角色
很多他们之间有很多关系(user_rol )。所有的mysql表都被正确地创建了,并且我也有ORM Doctrine Classes。
如果我加载通过手的用户,并加载它们的角色是工作完全正常,但是当我在被识别的用户使用该自动登录
{% block body %}
{% if error %}
<div>{{ error.message }}</div>
{% endif %}
<form action="{{ path('login_check') }}" method="post">
<label for="username">Usuario:</label>
<input id="username" type="text" name="_username" value="{{ last_username }}" />
<label for="password">Contraseña:</label>
<input id="password" type="password" name="_password" />
{#
If you want to control the URL the user
is redirected to on success (more details below)
<input type="hidden" name="_target_path" value="/account" />
#}
<input type="submit" name="login" />
</form>
{% endblock %}
登录后但在_profiler说一条警告消息“认证NO”(可能是因为用户没有角色)
所以我做这个代码:
$user = $this->get('security.context')->getToken()->getUser();
print_r(count($user->getRoles()))
而且角色是空的。有任何想法吗?
P.D:我试着覆盖对象的序列化函数并包括角色,但它没有工作。
顺便说一句,你按照文章是从2011年,和也许是使用Symfony 2.0,我认为你必须阅读你的版本的官方文档(最新我猜)http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form Symfony有一个非常好的文档。 – mangelsnc 2014-11-04 15:46:10
1。它实现了以下Symfony \ Component \ Security \ Core \ User \ UserInterface 2.是的,我修改了该函数,为每个角色返回一个包含字符串的数组。 – Javier 2014-11-04 16:03:41