2016-07-28 15 views
0

我按照[捷希凱SecurityServiceProvider] [1]的Symfony /捷希凱SecurityServiceProvider:「封閉」的序列化不允許

[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 

感謝您的幫助

回答

0

我的工具\序列化解決了這個問題。

class User extends Entity implements UserInterface, \Serializable { 

據商務部

http://symfony.com/doc/current/cookbook/security/entity_provider.html 
相關問題