所以我把它定义为:
/**
* Class TemplateController
* @package TemplateManager\Bundle\DocumentGeneratorBundle\Controller\API
* @Route("/api/v1/templates")
*/
class TemplateController extends Controller
{
/**
* @Route("?available={id}")
* @Method({"GET"})
*/
public function findAllAction($id)
{
echo "Yu";
}
/**
* @Route("/{id}")
* @Method({"GET"})
* @param $id
* @param $template_name
* @return Response
*/
public function findAction($id)
{}
}
以http://localhost/api//v1/templates?available=1
方式访问时,表示找不到匹配的路由。我哪里做错了?另一条路线运行正常。
答案 0 :(得分:1)
您的控制器的基本路线定义为@Route("/api/v1/templates")
,但您只需拨打" / api / templates / *"。你只是忘了" / v1 /"在那里。
尝试拨打http://localhost/api/v1/templates?available={id}
。
请注意:在CLI上,您始终可以转储所有已注册的路由,以便于调试。只需输入:
$> app/console debug:router
# or bin/console if you're using Symfony3 and above
$> bin/console debug:router
答案 1 :(得分:0)
不应该
http://localhost/api/template?available=1
而不是
http://localhost/api/templates?available=1
检查URL中使用的控制器类和单词。