Score:1

How to get a rendered views field value programmatically?

ธง us

Yes, I see there are many answers already posted here and elsewhere for this; but sadly they are all wrong. These answers include any of the following:

$view->style_plugin->getFieldValue($rid, 'field_myfield');

foreach ($view->result as $rid => $row) {
 foreach ($view->field as $fid => $field ) {
   $values[$rid][$fid . '-value'] = $field->getValue($row);
   $values[$rid][$fid . '-render'] = $field->render($row);
 }
}

$views->_entity->...

or a few others. These are all returning the field of the base entity returned by the view. These are entity field values. These are not the "fields of the view".

I know how to access these in a twig template (views-view-fields--[viewname]--[displayname].html.twig) but haven't been able to find out how to do this in a custom module.

Answer:

From @4k4's tip below:

This works:

foreach ($view->result as $rid => $row) {
  $type[$row->nid] = $view->field['my_views_field']->advancedRender($row)->__toString();
}
4uk4 avatar
cn flag
*สิ่งเหล่านี้ไม่ใช่ "ฟิลด์ของมุมมอง"* - `$view->field` มีฟิลด์ที่คุณกำหนดค่าในส่วนฟิลด์ของมุมมอง แต่ละฟิลด์คือปลั๊กอินตัวจัดการฟิลด์ และถ้าคุณต้องการแสดงฟิลด์เหมือนกับที่กำหนดค่าใน View ให้ใช้วิธีปลั๊กอิน advancedRender($row)
liquidcms avatar
us flag
ฉันได้ลองแล้ว advancedRender() (แม้ว่าจะไม่ได้รวมไว้ในรายการด้านบนก็ตาม); แต่คงสมัครผิด. สิ่งนี้ได้ผล ขอขอบคุณ. ฉันได้เพิ่มคำตอบแบบเต็มในโพสต์แล้ว
cn flag
+1 โหวตให้กับคำถามของคุณ @liquidcms ขอบคุณ คุณควรป้อนคำตอบข้างต้นของคุณเป็นคำตอบด้านล่างในช่องป้อนข้อความด้านล่าง "คำตอบของคุณ" ในคำตอบนี้ จากนั้นทำเครื่องหมายเพื่อทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับ ฉันพบว่าคำตอบของคุณมีประโยชน์ สิ่งหนึ่งที่ฉันต้องการค้นหาอย่างง่ายดายคือชื่อเครื่องของฟิลด์ในแถวมุมมอง - ในหน้าจอแก้ไขมุมมองในหน้าผู้ดูแลเว็บ มันแสดงชื่อ "เช่น เนื้อหา: ID" แต่ไม่ใช่ชื่อเครื่อง ("nid" ). ขอบคุณอีกครั้ง.
liquidcms avatar
us flag
หากคุณวางเมาส์เหนือฟิลด์ใน View UI จะแสดงชื่อเครื่อง
Score:0
ธง us

จากคำตอบของ @ 4k4 ด้านบน:

foreach ($view->ผลลัพธ์เป็น $rid => $row) {
  $type[$row->nid] = $view->field['my_views_field']->advancedRender($row)->__toString();
}

โพสต์คำตอบ

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