将控制器参数传递给模板,symfony2

Passing controller argument to template, symfony2

我有这样一条路线: 指数:

path:     /{category}
defaults: { _controller: AcmeDemoBundle:Index:index, category: "default" }
requirements:
categoria: "foo|bar|this|or|that"

相对控制器是:

<?php
namespace Acme\DemoBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class IndexController extends Controller
{
    public function indexAction($category)
    {
        $data = array("Content1", "Content2");
        return $this->render('AcmeDemoBundle:Default:index.html.twig', array('data' => $familiari));
    }
}
?>

如果我想在模板中使用存储在 $category 中的值怎么办 index.html.twig?我尝试使用渲染函数传递变量类别,但出现错误!提前致谢!

render() 的第二个参数是可以在渲染模板中访问的参数数组。因此,如果您像这样传递 $category:

  public function indexAction($category)
    {
        $data = array("Content1", "Content2");
        return $this->render('AcmeDemoBundle:Default:index.html.twig', 
              array('data' => $familiari, 'category'=>$category));
    }

然后您可以使用以下方式在模板中访问它:

{{ category }}