Symfony从服务中返回JsonResponse

时间:2017-07-21 10:35:35

标签: php web-services fosrestbundle symfony-3.3

我有一个控制器从移动应用程序返回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并停止在控制器中执行,或者是否有任何最佳解决方案来执行此操作。

1 个答案:

答案 0 :(得分:0)

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