我正在使用Symfony2,版本2.7。但任何人都應該能夠回答這個問題,因爲它與symfony不完全相關。如何阻止數組被覆蓋?
我有一個功能。我想要該函數添加一個新的項目(一旦從表單中點擊)到一個數組。相反,我的數組不斷被被點擊的新項目覆蓋。
我嘗試了一些foreach循環,但不能正確的。請,任何幫助表示讚賞。
以下是相關功能。
/**
* Displays Bought Items
*
* @Route("/buy/{id}", name="item_buy")
* @Method("GET")
* @Template()
*/
public function buyAction(Request $request, $id)
{
$session = $request->getSession();
$cart[] = $id;
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('AppBundle:Item')->find($id);
$entities = $em->getRepository('AppBundle:Item')->findAll();
$session->set('cart', $cart);
if (!$entity) {
throw $this->createNotFoundException('No Item ');
} else {
$cart[$entity->getId()] = $entity->getName();
}
$session->set('cart', $cart);
return array(
'cart' => $cart,
'entity' => $entity,
'entities' => $entities,
);
}
它是如何在樹枝被使用:
{% extends '::base.html.twig' %}
{% block body -%}
<h1>Items Bought...</h1>
<table class="record_properties">
<h3>You Bought...</h3>
{# {% if entity is defined %} #}
{% for key, cartValue in cart %}
<tr>
<td>{{ key }}: {{ cartValue }}</td>
{{ dump(entity.name) }}
{{ dump(cart) }}
</tr>
{% endfor %}
{# {% endif %} #}
<tbody>
{% for entity in entities %}
<tr>
<td><a href="{{ path('item_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td>
<td>{{ entity.name }}</td>
<td>
<ul>
<li>
<a href="{{ path('item_buy', { 'id': entity.id }) }}">Buy</a>
</li>
</ul>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<ul class="record_actions">
<li>
<a href="{{ path('item') }}">
Back to the list
</a>
</li>
{% endblock %}
btw是什麼原因在這裏添加'$ id'到數組'$ cart [] = $ id;'? 這條線 '$ cart [$ entity-> getId()] = $ entity-> getName();' 應該就夠了。 – LuckyLue
這只是爲了演示分配給哪個id,以及我將在哪裏放置代碼片段? –
嘗試替換'$ cart [] = $ id;'=>'$ cart = $ this-> get('session') - > get('cart',[]);' – LuckyLue