Score:1

วิธีที่ถูกต้องในการรับค่าฟิลด์ที่แสดงผลในเทมเพลต twig ของมุมมองบล็อกคืออะไร

ธง in

ฉันมีบล็อกในหน้าหลักของเว็บไซต์ที่แสดงข่าวล่าสุดจาก ข่าว หน้า (3 รายการล่าสุด). นี่คือมุมมอง นี่คือการตั้งค่า:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันพยายามทำให้บล็อกนี้ดูดีขึ้น เพราะนี่คือมุมมอง ฉันจึงใช้ block--views-block--news-block-1.html.twig ไฟล์เทมเพลตสำหรับวัตถุประสงค์ของฉัน สิ่งที่ฉันต้องการคือรับค่าฟิลด์ที่แสดงผลในนั้นเพื่อรวมแต่ละค่าไว้ใน a <div> ด้วยคลาส css ของตัวเอง ฉันพยายามหลายครั้งและผ่านการลองผิดลองถูก ในที่สุดฉันก็เขียนโค้ดต่อไปนี้:

{%
  ตั้งค่าคลาส = [
    'บล็อก',
    'block-' ~ configuration.provider|clean_class,
    'บล็อก-' ~ plugin_id|clean_class
  ]
%}
<div class="คอนเทนเนอร์">
    <ส่วน{{ attributes.addClass(คลาส) }}>
        {{ ชื่อเรื่อง_คำนำหน้า }}
            <h2 class="article_title">ข่าวเขต</h2>
        {{ ชื่อเรื่อง_ต่อท้าย }}
        {% บล็อกเนื้อหา %}
            <ul class="content article_list">
                {% สำหรับแถวในเนื้อหา['#view'].result %}
                    <li class="article_item">
                        <div class="article_item-header">
                            <div class="article_release_date">
                                {{ content['#view'].field['published_at'].value(row)|date("d.m.Y") }}
                            </div> 
                            {{ เนื้อหา['#view'].field['title'].getItems(row) }}
                        </div>
                        <div class="article_description">
                            {{ เนื้อหา['#view'].field['body'].getItems(แถว) }}
                        </div>
                    </li>
                {% สิ้นสุดสำหรับ %}
            </ul>
        {% บล็อกท้าย %}
        <div class="article_read_more">
            <a href="/news">ดูทั้งหมด</a>
        </div>
    </section>
</div>

มันทำงานได้อย่างน่าพอใจ: ฉันเห็นมาร์กอัปและตัวแปรในบล็อกนี้ในหน้าหลักเหมือนกับที่ฉันออกแบบไว้ทุกประการ แต่ฉันไม่สามารถพูดได้ว่ามันทำงานได้อย่างสมบูรณ์แบบ เพราะเมื่อฉันไปที่ "ข้อความบันทึกล่าสุด" ฉันเห็นข้อผิดพลาดที่มาจากสิ่งนี้ .กิ่งไม้ ไฟล์เทมเพลต ข้อความแสดงข้อผิดพลาดคือ: ข้อผิดพลาดของผู้ใช้: "raw" เป็นคีย์อาร์เรย์การแสดงผลที่ไม่ถูกต้องใน Drupal\Core\Render\Element::children() (บรรทัดที่ 97 ของ core/lib/Drupal/Core/Render/Element.php). เมื่อฉันลบไฟล์ twig ข้อผิดพลาดจะไม่เกิดขึ้นอีกต่อไป ดังนั้นคำถามของฉันคือ วิธีที่ถูกต้องเพื่อให้ได้มาร์กอัปเดียวกันโดยไม่มีข้อผิดพลาดดังกล่าวคืออะไร บางทีแนวทางของฉันอาจผิดทั้งหมดและฉันควรเปลี่ยน หรือแนวทางของฉันอาจถูกต้อง แต่มีข้อผิดพลาดเล็กน้อยในรหัสของฉัน อย่างไรก็ตาม ฉันต้องการทราบว่าเหตุใดฉันจึงได้รับข้อผิดพลาดดังกล่าวในบันทึก และฉันจะหลีกเลี่ยงได้อย่างไร ได้โปรดช่วยฉันด้วย

sonfd avatar
in flag
ฉันขอแนะนำให้อัปเดตมุมมองของคุณเพื่อแสดงโหมดมุมมองของโหนดข่าว จากนั้นคุณสามารถทำตรรกะทั้งหมดว่าฟิลด์ใดแสดงและวิธีแสดงสำหรับแต่ละรายการข่าวในเทมเพลตเฉพาะ
Score:0
ธง eg

ฉันคิดว่าการพยายามกำหนดธีมฟิลด์ภายในบล็อกไม่ใช่แนวปฏิบัติที่ดีที่สุด

วิธีการดังกล่าวในความคิดเห็นโดย ลูกชาย เป็นสิ่งที่ดีมาก

มิฉะนั้น คุณสามารถกำหนดธีมแต่ละฟิลด์ในมุมมองได้โดยการแทนที่เทมเพลตฟิลด์ เช่น:

views-view-field--{ดูชื่อเครื่อง}--{ชื่อเครื่องเพจหรือบล็อก}--{ชื่อฟิลด์}.html.twig

นี่จะเป็นแนวทางที่ดีกว่า

หวังว่านี่จะตอบคำถามของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา