Параметр сеанса symfony3: адрес ['livraison'] дает нулевое значение

Экспериментирую с реализацией электронной торговли 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')
        ));
    }

Разве Adresse не является объектом? Если это так, вам следует осмотреть средство доступа к свойству.

Preciel 31.05.2018 03:27

adresse - это массив, содержащий два индекса (livraison и facturation). Я получаю содержание адреса ['facturation'], но не для адреса ['livraison']

ferdinand 31.05.2018 09:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
2
52
1

Ответы 1

Перед использованием убедитесь, что вы инициализировали свою переменную $adresse как массив, как показано ниже:

$adresse = array();

вот он в контроллере: if (! $ session-> has ('adresse')) $ session-> set ('adresse', array ());

ferdinand 04.06.2018 14:39

Другие вопросы по теме