เรนเดอร์หลายอาร์เรย์ใน TWIG

ฉันโพสต์ถัดจากปัญหาของฉันที่นี่

เพราะฉันไม่สามารถเรนเดอร์อาร์เรย์ในทวิกได้

{{ dump(besoins) }} ให้บางอย่างกับฉัน

 array (size=30)   0 => 
     array (size=3)
       'stock' => 
         object(TG\ComptaBundle\Entity\Stock)[1097]
           private 'dimensions' => 
             object(Doctrine\ORM\PersistentCollection)[1131]
               ...
           private 'id' => int 1
           private 'name' => string 'Dilite 2' (length=8)
           private 'prix' => int 15
       'dimension' => 
         object(TG\ComptaBundle\Entity\Dimension)[1134]
           private 'stocks' => 
             object(Doctrine\ORM\PersistentCollection)[1123]
               ...
           private 'id' => int 10
           private 'name' => string '15 x 15' (length=7)
           private 'longueur' => int 15
           private 'largeur' => int 15
       'besoin' => 
         array (size=1)
           0 => 
             object(TG\ComptaBundle\Entity\Besoin)[1773]
               ...

ดังนั้นฉันจึงเห็นว่าฉันมี "besoin" อยู่ในอาร์เรย์ของฉัน

แต่ด้วยรหัสทวิกของฉัน เซลล์ของฉันก็ว่างเปล่า ... :(

<table class="table table-hover table-bordered">
        <thead>
            <tr>
                <th>#</th>
                    {% for dimension in dimensionslist %}
                        <th>{{ dimension.name }}</th>
                    {% endfor %}
            </tr>
        </thead>
        <tbody>
                {% for stock in materiauxlist %}
                    <tr>
                        <td>{{ stock.name }}</td>
                        {% set newArray = [] %}
                        {% for tableau in besoins %}
                            {% if tableau.stock.name == stock.name %}
                                {% set newArray = newArray|merge([tableau]) %}
                            {% endif %}
                        {% endfor %}
                        {% for tableau in newArray %}
                                {% if besoin %}
                                    <td>{{ besoin.nombre }}</td>
                                {% endif %}
                        {% endfor %}
                    </tr>
                {% endfor %}
    </tbody>
    </table>

นี่คือตัวควบคุมของฉัน:

public function commandeAction()
    {
        $em = $this->getDoctrine()->getManager();
        $materiauxlist = $em->getRepository('TGComptaBundle:Stock')->findAll();
        $dimensionslist = $em->getRepository('TGComptaBundle:Dimension')->findAll();
        $tab1 = array_merge($materiauxlist, $dimensionslist);
        $besoins = array();

        foreach ($materiauxlist as $stock) {
                foreach ($dimensionslist as $dimension) {
                    $besoin = $em->getRepository('TGComptaBundle:Besoin')->findBy(array('stock' => $stock, 'dimension' => $dimension), null, 1);
                    $tableau = array('stock' => $stock, 'dimension' => $dimension, 'besoin' => $besoin);
                    $besoins[] = $tableau;
                }
        }

        return $this->render('TGProdBundle:Projet:stocks.html.twig', array(
                'materiauxlist' => $materiauxlist,
                'dimensionslist' => $dimensionslist,
                'besoin' => $besoin,
                'tableau' => $tableau,
                'besoins' => $besoins));
    }

ได้โปรดมีคนช่วยฉันได้ไหม?


person Nico    schedule 21.07.2015    source แหล่งที่มา
comment
คุณแน่ใจหรือไม่ว่า $besoin ได้รับการประเมินเป็นจริงในทวิก {% if besoin %} ?   -  person KmeCnin    schedule 21.07.2015
comment
ไม่ นั่นคือประเด็น ฉันคิดว่ามันถูกประเมินว่าเป็นเท็จ แต่ฉันไม่รู้ว่าทำไม เพราะฉันมองเห็นค่าในดัมพ์ของฉัน   -  person Nico    schedule 21.07.2015
comment
ไม่ คุณบอกว่าคุณทิ้ง besoinS ดังนั้นสิ่งนี้จึงไม่เกี่ยวข้องกับ besoin (ไม่มี S)   -  person KmeCnin    schedule 21.07.2015


คำตอบ (1)


ฉันคิดว่านี่เป็นสิ่งที่ผิด:

{% for tableau in newArray %}
   {% if besoin %}
      <td>{{ besoin.nombre }}</td>
   {% endif %}
{% endfor %}

แก้ไข: ควรมีลักษณะดังนี้:

{% for values in newArray %}
   {% for key,value in values %}
      {% if key == "besoin" %}
         {% for bison in value %}
            <td>{{ bison.nombre }}</td>
         {% endfor %}
      {% endif %}
   {% endfor %}
{% endfor %}
person Nickolaus    schedule 21.07.2015
comment
ขอบคุณ แต่น่าเสียดายที่ Key nombre สำหรับอาร์เรย์ที่มีสต็อกคีย์ มิติ besoin ไม่มีอยู่ใน TGPodbundle:Projet:stocks.html.twig ที่บรรทัด 31 ถ้าฉันใส่ {{ value.besoin }} แทน ฉันมีข้อผิดพลาดในการแปลง arraytoString :/ - person Nico; 21.07.2015
comment
เนื่องจาก Bisons เป็นคอลเลคชัน - person Nickolaus; 21.07.2015
comment
ขออภัย ฉันไม่แน่ใจว่าจะเข้าใจว่าคุณต้องการใส่สิ่งนี้ไว้ที่ไหน: - person Nico; 21.07.2015
comment
เพียงแทนที่บล็อกแรกที่ฉันยกมาจากโค้ดของคุณด้วยบล็อกโค้ดที่สองที่ฉันโพสต์ - person Nickolaus; 21.07.2015
comment
วิธีการ nombre สำหรับวัตถุ TG\ComptaBundle\Entity\Stock ไม่มีอยู่ใน TGPodbundle:Projet:stocks.html.twig ที่บรรทัด 32 ฉันคิดว่ามันใช้คีย์แรก (หุ้น) ใน $tableau และไม่ใช่คีย์ $besoin :'( - person Nico; 21.07.2015
comment
ถ้าฉันเปลี่ยนอาร์เรย์ของฉันเช่น $tableau = array('besoin' =› $besoin, 'stock' =› $stock, 'size' =› $size); ข้อผิดพลาดแจ้งว่า Key nombre สำหรับอาร์เรย์ที่มีคีย์ 0 ไม่มีอยู่ใน TGProdBundle:Projet:stocks.html.twig ที่บรรทัด 32 - person Nico; 21.07.2015
comment
ฉันได้อัปเดตโครงสร้างลูปแล้ว โปรดลองอันนี้ - person Nickolaus; 21.07.2015
comment
Nombre คีย์สำหรับอาร์เรย์ที่มีคีย์ 0 ไม่มีอยู่ใน TGPodbundle:Projet:stocks.html.twig ที่บรรทัด 32 - person Nico; 22.07.2015
comment
ฉันได้อัปเดตโซลูชันแล้ว .... แต่เพียงคำใบ้ให้ใช้ฟังก์ชันทวิก dump() เพื่อแก้ไขข้อบกพร่องของตัวแปรเพื่อให้คุณสามารถวิเคราะห์ปัญหาของคุณได้ - person Nickolaus; 22.07.2015
comment
ฉันให้ดัมพ์ (เบโซอิน) แก่คุณที่ด้านบนของโพสต์เริ่มต้นของฉัน ดูเหมือนว่าจะดี ดูเหมือนว่ารหัสสุดท้ายของคุณจะดีกว่า จะลองจัดแล้วกลับมาแจ้งผลนะครับ ;) ขอบคุณมากครับที่ช่วย - person Nico; 22.07.2015
comment
ปัญหาคือฉันมีอยู่ในคอลัมน์แรกและไม่ได้อยู่ในคอลัมน์ที่ถูกต้อง คุณสามารถดูได้ที่นี่: hostingpics.net/viewer.php?id=910438Capture jpg - person Nico; 22.07.2015
comment
บางทีถ้าฉันหาวิธีแก้ปัญหาในการใส่ X ใน ‹td› เมื่อ besoin เป็นโมฆะ มันก็อาจจะดี - person Nico; 22.07.2015
comment
เยี่ยมมาก มันใช้งานได้ดีกับลูป {% if value %} ;) ขอบคุณอีกครั้งสำหรับความช่วยเหลือของคุณ มันประเมินค่าไม่ได้หลังจากผ่านไปสองสามวันกับปัญหาเดียวกัน ! - person Nico; 23.07.2015
comment
ขออภัยฉันเริ่มต้นที่นี่และฉันไม่ได้สะท้อนกลับ! แต่ตอนนี้ฉันทำได้แล้ว ;) - person Nico; 24.07.2015