2017-07-21 4 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; 
    } 
    ... 

iは、コントローラ内のサービスと停止実行から直接JsonResponseを返すことができるか、このことを行うための任意の自己ベストソリューションがあります。

答えて

0

この質問に誰も答えなかったことは奇妙なことですが、私はそれについても興味がありますが、これは方法がないと言われました。説明は、応答の種類をjsonから何か他のものに変更したい場合です。サービスを含む多くのクラスをリファクタリングする必要がありますが、コントローラでレスポンスを作成する場合は、そこで変更するだけです。

関連する問題