带占位符的路由

使用 YAML:

# app/config/routing.yml
blog_show:
    path:     /blog/{slug}
    defaults: { _controller: AppBundle:Blog:show }

使用注释:

// 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/{slug}", name="blog_show")
     */
    public function showAction($slug)
    {
        // ...
    }
}

任何 URL 匹配/blog/*的请求都将由 AppBundle 中的 BlogControllershowAction() 方法处理。控制器操作将接收占位符的值作为方法参数。

例如,对/blog/my-post 的请求将触发使用包含值 my-post 的参数 $slug 调用 showAction()。使用该参数,控制器操作可以根据占位符的值更改响应,例如通过从数据库中检索带有 slug my-post 的博客文章。