佔位符的預設值

如果你想要一個可以省略的佔位符,可以給它一個預設值:

使用 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