在twig循环中访问数组值

时间:2014-08-17 11:52:44

标签: symfony doctrine-orm twig

我无法访问TWIG中的汽车但下面的代码在控制器本身中运行良好。在尝试访问Twig中的汽车时,我收到这样的错误:

Method "model" for object "Doctrine\ORM\PersistentCollection" does not exist in

这些都没有在以下TWIG循环中工作:

{{ car.model }}
{{ cars.model }}
{{ brand.car.model }}
{{ brand.cars.model }}
{{ brand.car.car.model }}
{{ brand.car.cars.model }}
{{ brand.cars.car.model }}
{{ brand.cars.cars.model }}

这个工作很好的TWIG文件:

{% for brand in result %}
   {{ brand.name }}
{% endfor %}

CONTROLLER(正常工作):

    foreach ($result as $brand)
    {
        echo $brand->getName() . ':';

        foreach ($brand->getCars() as $car)
        {
            echo $car->getModel() . ',';
        }

        echo '<br />';
    }

输出:

bmw:3.16,3.18,
mercedes:amg,

在存储处查询:

$query = $em->createQuery('SELECT car, brand
                            FROM CarBrandBundle:Brands brand
                            JOIN brand.cars car
                            ORDER BY
                                brand.name ASC,
                                car.model ASC');

1 个答案:

答案 0 :(得分:2)

Cars是一个数组,所以你需要循环遍历它们......

{% for car in brand.cars %}
    {{ car.model }}
{% endfor %}

或者您可以像{{ brans.cars[0].model }}那样访问它,但之后您必须知道预先有多少辆汽车。