我正在创建一个在线商店.如果我使用twig函数"render"而不是"include",我会遇到性能问题.
以下是显示产品目录的代码:
目录控制器:
<?php
// src/Acme/StoreBundle/Controller/Product/Catalog.php
namespace Acme\StoreBundle\Controller\Product;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
class CatalogController extends Controller
{
/**
* @Template()
*/
public function productAction(\Acme\StoreBundle\Entity\Product\Category $category)
{
$qb = $this->getDoctrine()
->getRepository('StoreBundle:Product')
->createQueryBuilder('product')
->select('partial product.{id, token, name}')
->innerJoin('product.categoryRelation', 'categoryRelation')
->where('categoryRelation.category = :category_id');
$qb->setParameters(array(
'category_id' => $category->getId(),
));
$products = $qb->getQuery()
->getResult();
return $this->render('StoreBundle:Product\Catalog:product.html.twig', array(
'category' => $category,
'products' => $products,
));
}
}
Run Code Online (Sandbox Code Playgroud)
...目录控制器的模板:
{# src/Acme/StoreBundle/Resources/views/Product/Catalog/product.html.twig #}
{% extends 'AcmeDemoBundle::layout.html.twig' %}
{% block content %}
<h1>{{ category.name }}</h1>
<ul>
{% for product …Run Code Online (Sandbox Code Playgroud) 我想在我的所有Twig视图上显示用户名/最后连接日期/时间和一些其他信息(这些视图都来自常见的Twig布局).
如何在不必将每个控制器的参数显式传递给每个视图的情况下实现这一目标?
我是否必须创建一个Twig扩展,或者调用一个控制器/动作,它将使用渲染从布局中检索用户名/连接/其他信息?
如果可能的话,我想要一个更简单的解决方案.