无法识别 Symfony 路由注释
Symfony Routing annotation not recognized
我在 routing.yml 文件中声明了以下内容:
AcmeFrontendBundle:
resource: "@AcmeFrontendBundle/Controller"
type: annotation
然后我在控制器中这样调用它(这个有效):
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
....
class ArticleVariantController extends Controller
{
....
/**
* Set delete status to an image
* @Route("/article-variant/soft-delete-image-ajax/{id}", name="acme_frontend_article_variant_soft_delete_image")
* @Method({"POST"})
*
* @param integer $id Article Erp Id
* @return mixed
*/
public function softDeleteImageAjaxAction($id)
{
return $this->deleteImageHandler($id);
}
但是这条路线没有被识别为路线(只有当我将它添加到 routing.yml 文件中时——我不想这样做):
/*
* Deactivate article variant
* @Route("/article-variant/deactivate-article-variant-ajax/{id}", name="acme_frontend_deactivate_article_variant_ajax")
* @Method({"POST"})
*
* @param integer $id article Id
* @return mixed
*/
public function deactivateArticleVariantAjaxAction($id)
{
return $this->articleVariantsHandler($id);
}
我是不是漏掉了什么?
问题出在 PHPDoc 声明...
原来是这样的:
/*
* Deactivate article variant
* @Route("/article-variant/deactivate-article-variant-ajax/{id}", name="acme_frontend_deactivate_article_variant_ajax")
* @Method({"POST"})
*
* @param integer $id article Id
* @return mixed
*/
评论开头的第二颗星应该是这样的
/** <- this one here!
* Deactivate article variant
* @Route("/article-variant/deactivate-article-variant-ajax/{id}", name="acme_frontend_deactivate_article_variant_ajax")
* @Method({"POST"})
*
* @param integer $id article Id
* @return mixed
*/
使用 PHPStorm 快捷方式 /* ctrl+enter... 应该是 /** ctrl+enter 不要将其作为注释 /* ... */
而是作为 PHPDoc 声明。
我在 routing.yml 文件中声明了以下内容:
AcmeFrontendBundle:
resource: "@AcmeFrontendBundle/Controller"
type: annotation
然后我在控制器中这样调用它(这个有效):
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
....
class ArticleVariantController extends Controller
{
....
/**
* Set delete status to an image
* @Route("/article-variant/soft-delete-image-ajax/{id}", name="acme_frontend_article_variant_soft_delete_image")
* @Method({"POST"})
*
* @param integer $id Article Erp Id
* @return mixed
*/
public function softDeleteImageAjaxAction($id)
{
return $this->deleteImageHandler($id);
}
但是这条路线没有被识别为路线(只有当我将它添加到 routing.yml 文件中时——我不想这样做):
/*
* Deactivate article variant
* @Route("/article-variant/deactivate-article-variant-ajax/{id}", name="acme_frontend_deactivate_article_variant_ajax")
* @Method({"POST"})
*
* @param integer $id article Id
* @return mixed
*/
public function deactivateArticleVariantAjaxAction($id)
{
return $this->articleVariantsHandler($id);
}
我是不是漏掉了什么?
问题出在 PHPDoc 声明...
原来是这样的:
/*
* Deactivate article variant
* @Route("/article-variant/deactivate-article-variant-ajax/{id}", name="acme_frontend_deactivate_article_variant_ajax")
* @Method({"POST"})
*
* @param integer $id article Id
* @return mixed
*/
评论开头的第二颗星应该是这样的
/** <- this one here!
* Deactivate article variant
* @Route("/article-variant/deactivate-article-variant-ajax/{id}", name="acme_frontend_deactivate_article_variant_ajax")
* @Method({"POST"})
*
* @param integer $id article Id
* @return mixed
*/
使用 PHPStorm 快捷方式 /* ctrl+enter... 应该是 /** ctrl+enter 不要将其作为注释 /* ... */
而是作为 PHPDoc 声明。