Php 函数顺序对于symfonyapi的重要性

Php 函数顺序对于symfonyapi的重要性,php,api,symfony,Php,Api,Symfony,早上好 我是Symfony的新手,我想开发一个API,但在使用Postman进行测试时遇到了一个问题: 当我执行GET on the road时,邮递员执行createAction函数而不是listAction。然而他们的动词却大不相同 你能解释一下原因吗 这是我的控制器: /** * @Route("/video", name="video_create") * @Method({"POST"}) */ public function createAction(Request $req

早上好

我是Symfony的新手,我想开发一个API,但在使用Postman进行测试时遇到了一个问题:

当我执行GET on the road时,邮递员执行createAction函数而不是listAction。然而他们的动词却大不相同

你能解释一下原因吗

这是我的控制器:

 /**
 * @Route("/video", name="video_create")
 * @Method({"POST"})
 */
public function createAction(Request $request)
{
    $data = $request->getContent();
    $video = $this->get('jms_serializer')->deserialize($data, 'App\Entity\Video', 'json');

    $em = $this->getDoctrine()->getManager();
    $em->persist($video);
    $em->flush();

    return new Response('', Response::HTTP_CREATED);
}

/**
 * @Route("/video", name="video_list")
 * @Method({"GET"})
 */
public function listAction()
{
    $video = $this->getDoctrine()->getRepository('App\Entity\Video')->findAll();
    $data = $this->get('jms_serializer')->serialize($video, 'json');

    $response = new Response($data);
    $response->headers->set('Content-Type', 'application/json');

    return $response;
}

提前感谢您的帮助

我建议您:

/**
 * @Route("/video", method={"POST"}, name="video_create")
 */
public function createAction(Request $request) {...}

不太冗长,完全兼容Symfony。这样,您的路由器将获得正确的路由。

您使用的是一种折旧方法来定义路由。接着说:很好,谢谢!它起作用了!