佔位符的預設值
如果你想要一個可以省略的佔位符,可以給它一個預設值:
使用 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。