我正在尝试实施电子商务" DevAndClick"。我无法检索传递和帐单地址,会话address[livraison]
显示空值。我被封锁了。有没有人遇到过这个可以帮助我的问题?
以下是Twig视图形式的代码:
<form action="{{path('validation')}}" method="POST">
<h4>Adresse de livraison</h4>
{% for adresse in utilisateur.adresses %}
<label class="radio">
<input type="radio" name="livraison" value="{{adresse.id}}" {% if loop.index0 == 0 %} checked="checked" {% endif %} >
{{adresse.adresse}} , {{adresse.cp}} {{adresse.ville}}-{{adresse.pays}}<a href=" {{path('livraisonAdresseSuppression', {'id' :adresse.id} )}} "><i class="icon-trash"></i></a> <br />
{{adresse.prenom}} {{adresse.nom}}
</label>
{% endfor %}
<br /><br />
<h4>Adresse de facturation</h4>
{% for adresse in utilisateur.adresses %}
<label class="radio">
<input type="radio" name="facturation" value="{{adresse.id}}" {% if loop.index0 == 0 %} checked="checked" {% endif %} >
{{adresse.adresse}} , {{adresse.cp}} {{adresse.ville}}-{{adresse.pays}}<a href=" {{path('livraisonAdresseSuppression', {'id' :adresse.id} )}} "><i class="icon-trash"></i></a> <br />
{{adresse.prenom}} {{adresse.nom}}
</label>
{% endfor %}
<button class="btn btn-primary">Valider mes adresse </button>
</form>
以下是我的控制器的两种方法:
public function setLivraisonOnSession(Request $request)
{
$session = $request->getSession();
if(!$session->has('adresse')) $session->set('adresse',array());
$adresse = $session->get('adresse');
if($request->request->get('livraison') != null && $request->request->get('facturation') != null )
{
$adresse['livraison'] = $request->request->get('livrasion');
$adresse['facturation'] = $request->request->get('facturation');
}
else{
return $this->redirect($this->generateUrl('validation'));
}
$session->set('adresse',$adresse);
return $this->redirect($this->generateUrl('validation'));
}
public function validationAction(Request $request)
{
if($request->isMethod('POST'))
$this->setLivraisonOnSession($request);
$em = $this->getDoctrine()->getManager();
$session = $request->getSession();
$adresse = $session->get('adresse');
//var_dump($adresse['livraison']);
// die();
$produits = $em->getRepository('EcommerceBundle:Produits')->findArray(array_keys($session->get('panier')));
$livraison = $em->getRepository('EcommerceBundle:UtilisateursAdresses')->find($adresse['livraison']);
$facturation = $em->getRepository('EcommerceBundle:UtilisateursAdresses')->find($adresse['facturation']);
return $this->render('EcommerceBundle:Default/panier/layout:validation.html.twig',array(
'produits' => $produits,
'livraison'=> $livraison,
'facturation'=>$facturation,
'panier'=>$session->get('panier')
));
}
答案 0 :(得分:0)
确认您在使用之前已将变量$adresse
初始化为数组,如下所示:
$adresse = array();