如何检索&使用Twig从数组中打印值?

时间:2016-02-23 13:57:49

标签: php arrays symfony twig

我无法从我的阵列中获取我的值以在twig文件中打印出来。

现在我有这个:

ProductController.php on line 290:
array:1 [▼
  1 => array:3 [▼
    0 => "Water"
    1 => 5
    2 => 2.75
  ]
]

在树枝上我有这个:

        <tbody>
            {% for cartValue in cartArray %}
                <tr>
                    <!--ERRORS BELOW NOW-->
                    <td>{{ cartValue }}</td>
                    <td>{{ quantity }}</td>
                    <td>${{ price }}</td>
                </tr>
            {% endfor %}    
        </tbody>
    </table> <!--top table-->

在productEntity中我有这个:

    $cartArray = array();

    if (is_null($cartArray) || !$entity) {
        throw $this->createNotFoundException('Error: Nothin in Array/Entity');
    } else {
        $cartArray = $session->get('cartArray', []);
        // $cartArray[$entity->getId()] = $entity->getName();
        $cartArray[$entity->getId()] = [$entity->getName(), $entity->getQuantity(), $entity->getPrice()];

        foreach ($cartArray as $key => $product) {
                //dump($cartArray); die;
                //dump($key); die;
                $productEntity = $em->getRepository('PaTShopTestBundle:Product')->find($key);
                $quantity = $productEntity->getQuantity();
                $price = $productEntity->getPrice();
                $totalCostOfAllProducts += $price * $quantity;
        }
    }

    $session->set('cartArray', $cartArray); //session---------------

    //var_dump($cartArray); die;

    return array(
        'price'     => $price,
        'quantity'  => $quantity,
        'totalCostOfAllProducts'   => $totalCostOfAllProducts,
        'cartArray'   => $cartArray,
        'entity'      => $entity,
        'delete_form' => $deleteForm->createView(),
    );

我希望能够在我的数组中显示cartValue(产品名称)数量和每种产品的价格。如果我向数组添加第二项,我会得到:

array:2 [▼
  1 => array:3 [▼
    0 => "Water"
    1 => 5
    2 => 2.75
  ]
  2 => array:3 [▼
    0 => "Duck"
    1 => 3
    2 => 6.25
  ]
]

我不断收到一些错误,其中一个是:

  

在第21行的src / PaT / ShopTestBundle / Resources / views / Product / cart.html.twig中呈现模板(&#34;注意:数组到字符串转换&#34;)期间抛出异常

我已尝试引用数组的索引

在树枝上:

{{ cartValue[0] }}
{{ quantity[1] }}

但是一旦调用数量[1]它就会停止工作:错误:

  

无法在src / PaT / ShopTestBundle / Resources / views / Product / cart.html.twig中的整数变量(&#34; 3&#34;)上访问密钥(&#34; 1&#34;)在第22行

我知道有办法做我想要完成的事情,但我不知道。我是新手,但我正在学习。

真的很感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:1)

Twig中的数组循环不正确..

如果您不想使用密钥,请执行此操作。

编辑:已下划线阵列

<tbody>
    {% for key, cartValue in cartArray %}
        <tr>
            <!--ERRORS BELOW NOW-->
            <td>{{cartValue[0]}}</td>
            <td>{{cartValue[1]}}</td>
            <td>{{cartValue[2]}}</td>
        </tr>
    {% endfor %}    
</tbody>

使用密钥.. 在PHP中修改cartArray看起来像这样

      $cartArray[$entity->getId()] = [
        'name' => $entity->getName(),
        'quantity' => $entity->getQuantity(),
        'price' => $entity->getPrice()
      ];

然后在你的Twig文件中执行此操作,

        <tbody>
        {% for cartValue in cartArray %}
            <tr>
                <!--ERRORS BELOW NOW-->
                <td>{{ cartValue.name }}</td>
                <td>{{ cartValue.quantity }}</td>
                <td>${{ cartValue.price }}</td>
            </tr>
        {% endfor %}    
    </tbody>
</table> <!--top table-->

答案 1 :(得分:0)

    {% for cartValue in cartArray %}
        <tr>
            <!--ERRORS BELOW NOW-->
            <td>{{ cartArray[0] }}</td>
            <td>{{ cartArray[1] }}</td>
            <td>${{ cartArray[2] }}</td>
        </tr>
    {% endfor %}    
</tbody>

$cartArray[$entity->getId()] = array('name' =>$entity->getName(), 'quantity' => $entity->getQuantity(), 'price' => $entity->getPrice());