相关疑难解决方法(0)

symfony2:如何从模板访问服务

如果我创建了一个服务,有没有办法从twig访问它,而不创建twig.extension?

php symfony

43
推荐指数
1
解决办法
3万
查看次数

Twig:渲染vs包含

我正在创建一个在线商店.如果我使用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)

symfony twig

9
推荐指数
1
解决办法
4万
查看次数

将参数传递给所有视图

我想在我的所有Twig视图上显示用户名/最后连接日期/时间和一些其他信息(这些视图都来自常见的Twig布局).

如何在不必将每个控制器的参数显式传递给每个视图的情况下实现这一目标?

我是否必须创建一个Twig扩展,或者调用一个控制器/动作,它将使用渲染从布局中检索用户名/连接/其他信息?

如果可能的话,我想要一个更简单的解决方案.

controller parameter-passing symfony twig

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

symfony ×3

twig ×2

controller ×1

parameter-passing ×1

php ×1