路由在Symfony 3.2中不起作用

时间:2017-05-16 09:45:49

标签: php symfony symfony-routing

我使用docs中的示例。 这是 的的routing.yml

   app:
    resource: '@AppBundle/Controller/'
    type: annotation
    blog_list:
        path:      /blog/{page}
        defaults:  { _controller: AppBundle:Blog:list , page: 1}
        requirements:
            page: '\d+'

这个控制器:

<?php
    namespace AppBundle\Controller;

    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

    class BlogController extends Controller
    {
        /**
         * @Route("/blog/{page}", name="blog_list", requirements={"page": "\d+"})
         */
        public function listAction($page = 1)
        {
            $number = mt_rand(0, 100);
            return $this->render('lucky/number.html.twig',['number'=>$number]);
        }
    }

我看到了错误:

  

路由文件“/var/www/pars/app/config/routing.yml”包含“app”:“blog_list”不支持的密钥。预期的一个:/ var中的“资源”,“类型”,“前缀”,“路径”,“主机”,“方案”,“方法”,“默认值”,“要求”,“选项”,“条件” /www/pars/app/config/routing.yml(从“/var/www/pars/app/config/routing_dev.yml”导入)。

为什么?

1 个答案:

答案 0 :(得分:2)

似乎只有缩进问题:新路线应该处于低位:

app:
    resource: '@AppBundle/Controller/'
    type: annotation

blog_list:
    path:      /blog/{page}
    defaults:  { _controller: AppBundle:Blog:list , page: 1}
    requirements:
        page: '\d+'

希望这个帮助