占位符的默认值
如果你想要一个可以省略的占位符,可以给它一个默认值:
使用 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
。