2017-07-21 95 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改變爲其他類型,你將不得不重構許多類(包括服務),但是如果你在控制器中創建響應,你可以在那裏修改它。