我无法从我的阵列中获取我的值以在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行
我知道有办法做我想要完成的事情,但我不知道。我是新手,但我正在学习。
真的很感谢任何帮助!谢谢!
答案 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());