2017-07-21 53 views
0

我有一个控制器从移动应用程序返回JsonResponse,对于每个操作,我必须验证用户是否使用令牌连接。我想将这个行为委托给服务认证。Symfony从服务返回JsonResponse

$user = $this->em->getRepository('UserBundle:User')->findOneBy(array('email' => $username)); 
    if (!$user) { 
     return new JsonResponse('User not found', 501); 
    } 
    $session = $this->em->getRepository('UserBundle:Session')->findOneBy(array('user' => $user->getId(), 'token' => $token)); 
    if(!$session){ 
     return new JsonResponse('Session not found', 501); 
    } 
    return true; 

这里的一切都工作得很好,但在我的控制,我有这个测试来验证结果。

if($result instanceof JsonResponse){ 
     return $result; 
    } 
    ... 

我可以从服务直接返回JsonResponse和停止执行的控制器或有任何最好成绩的解决方案,做这件事情。

回答

0

奇怪的是,没有人回答这个问题,我也会好奇它,但是我被告知这不是要走的路。解释是,如果你想将响应类型从json改变为其他类型,你将不得不重构许多类(包括服务),但是如果你在控制器中创建响应,你可以在那里修改它。