占位符的默认值

如果你想要一个可以省略的占位符,可以给它一个默认值:

使用 YAML:

# app/config/routing.yml
blog_list:
    path:      /blog/{page}
    defaults:  { _controller: AppBundle:Blog:list, page: 1 }
    requirements:
        page: '\d+'

使用注释:

// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;

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)
    {
        // ...
    }
}

在此示例中,/blog/blog/1 URL 都将与 blog_list 路由匹配,并将由 listAction() 方法处理。在/blog 的情况下,listAction() 仍然会收到 $page 参数,默认值为 1