Symfony/Silex SecurityServiceProvider:不允许序列化 'Closure'
Symfony/Silex SecurityServiceProvider: Serialization of 'Closure' is not allowed
我关注[Silex SecurityServiceProvider][1]
[1]: http://silex.sensiolabs.org/doc/providers/security.html一步一步来,但是当我提交登录表单时,我得到了错误:
Exception in AbstractToken.php line 154:
Serialization of 'Closure' is not allowed
我不知道这个错误是从哪里来的...我使用与示例完全相同的代码:
控制器:
$app->get('/login', function(Request $request) use ($app) {
return $app['twig']->render('login.twig', array(
'error' => $app['security.last_error']($request),
'last_username' => $app['session']->get('_security.last_username'),
));
});
查看:
<form action="{{ path('connexion') }}" method="post">
{{ error }}
<input type="text" name="_username" value="{{ last_username }}" />
<input type="password" name="_password" value="" />
<input type="submit" />
</form>
错误的第一行:
in AbstractToken.php line 154
at SplObjectStorage->serialize()
at serialize(array(object(User), true, array(object(Role)), array())) in AbstractToken.php line 154
at AbstractToken->serialize() in UsernamePasswordToken.php line 96
at UsernamePasswordToken->serialize()
at serialize(object(UsernamePasswordToken)) in ContextListener.php line 129
at ContextListener->onKernelResponse(object(FilterResponseEvent), 'kernel.response', object(TraceableEventDispatcher))
at call_user_func(array(object(ContextListener), 'onKernelResponse'), object(FilterResponseEvent), 'kernel.response', object(TraceableEventDispatcher)) in WrappedListener.php line 61
at WrappedListener->__invoke(object(FilterResponseEvent), 'kernel.response', object(EventDispatcher))
at call_user_func(object(WrappedListener), object(FilterResponseEvent), 'kernel.response', object(EventDispatcher)) in EventDispatcher.php line 174
感谢帮助
我通过实现 \Serializable 解决了这个问题。
class User extends Entity implements UserInterface, \Serializable {
根据文档
http://symfony.com/doc/current/cookbook/security/entity_provider.html
我关注[Silex SecurityServiceProvider][1]
[1]: http://silex.sensiolabs.org/doc/providers/security.html一步一步来,但是当我提交登录表单时,我得到了错误:
Exception in AbstractToken.php line 154:
Serialization of 'Closure' is not allowed
我不知道这个错误是从哪里来的...我使用与示例完全相同的代码:
控制器:
$app->get('/login', function(Request $request) use ($app) {
return $app['twig']->render('login.twig', array(
'error' => $app['security.last_error']($request),
'last_username' => $app['session']->get('_security.last_username'),
));
});
查看:
<form action="{{ path('connexion') }}" method="post">
{{ error }}
<input type="text" name="_username" value="{{ last_username }}" />
<input type="password" name="_password" value="" />
<input type="submit" />
</form>
错误的第一行:
in AbstractToken.php line 154
at SplObjectStorage->serialize()
at serialize(array(object(User), true, array(object(Role)), array())) in AbstractToken.php line 154
at AbstractToken->serialize() in UsernamePasswordToken.php line 96
at UsernamePasswordToken->serialize()
at serialize(object(UsernamePasswordToken)) in ContextListener.php line 129
at ContextListener->onKernelResponse(object(FilterResponseEvent), 'kernel.response', object(TraceableEventDispatcher))
at call_user_func(array(object(ContextListener), 'onKernelResponse'), object(FilterResponseEvent), 'kernel.response', object(TraceableEventDispatcher)) in WrappedListener.php line 61
at WrappedListener->__invoke(object(FilterResponseEvent), 'kernel.response', object(EventDispatcher))
at call_user_func(object(WrappedListener), object(FilterResponseEvent), 'kernel.response', object(EventDispatcher)) in EventDispatcher.php line 174
感谢帮助
我通过实现 \Serializable 解决了这个问题。
class User extends Entity implements UserInterface, \Serializable {
根据文档
http://symfony.com/doc/current/cookbook/security/entity_provider.html