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