คำถามติดแท็ก entities

โหนดความคิดเห็นข้อกำหนดด้านอนุกรมวิธานและผู้ใช้ในศัพท์ที่ใช้ตั้งแต่ Drupal 7 มักเรียกว่า "เอนทิตี"

1
วิธีรับอาร์เรย์ของรหัสเอนทิตีที่อ้างอิงจากฟิลด์การอ้างอิงเอนทิตี
ฉันมีentity_referenceสนามที่มีความBaseFieldDefinition::CARDINALITY_UNLIMITEDสำคัญเชิงหัวใจ ฉันต้องการรายการรหัสเอนทิตีที่อ้างอิง ฉันรู้ว่าฉันสามารถรับเอนทิตีที่อ้างอิงได้ทั้งหมดโดยการโทร$x->referencedEntities()แต่ฉันต้องการเฉพาะรหัสที่จะโหลดเอนทิตีในภายหลัง ขณะนี้ฉันกำลังทำสิ่งนี้: $a = []; foreach ($entity->autoren as $v) { $a[] = $v->target_id; } $this->setCurrentAnwaltReferenzen($a); ไม่มีใครรู้วิธีแก้ปัญหาที่ดีกว่าเหมือนใน D7 (-> raw ())? ขอบคุณ
10 8  entities 

4
การป้อนอัตโนมัติโดยใช้ฟิลด์อื่น
ฉันมีสถานการณ์ที่ซับซ้อนมากซึ่งฉันต้องการคำแนะนำ ฉันมีชนิดเนื้อหาmy_contentซึ่งมีข้อมูลการเก็บรวบรวมข้อมูลที่แนบมากับมันfield_mycollectionซึ่งมีข้อมูลอ้างอิงนิติบุคคลอ้างอิงให้กับผู้ใช้field_my_userreferenceข้อมูลโทรศัพท์field_my_phone, ช่องข้อความและข้อมูลข้อความอื่นfield_my_textfield_my_anothertext My Content |_ field_mycollection |_ field_my_userreference |_ field_my_phone |_ field_my_text |_ field_my_anothertext นิติบุคคลผู้ใช้ยังมีสาขาfield_my_phone, field_my_textและfield_my_yetanothertextที่หลังมีชื่อเครื่องที่แตกต่างกัน สิ่งที่ฉันต้องการจะทำถ้าในmy_contentรูปแบบการแก้ไข / เพิ่มในfield_my_userreferenceผู้ใช้มีการเลือกเขตข้อมูลอื่น ๆ ควรจะเติมอัตโนมัติจากข้อมูลของผู้ใช้ที่เลือก ฟิลด์ที่เติมอัตโนมัติควรยังคงสามารถแก้ไขได้ ฉันจะบรรลุเป้าหมายนี้ได้อย่างไร hook_form_FORM_ID_alter()ฉันต้องการที่จะทำมันถ้าเป็นไปได้กับบางการเข้ารหัสโดยใช้
10 7  entities 

5
ฉันจะค้นหาวิธีสาธารณะที่มีอยู่ได้อย่างไร
ฉันพบว่าปัญหาที่ใหญ่ที่สุดในการทำงานกับ Drupal 8 คือฉันไม่สามารถรับข้อมูลที่ต้องการได้ Drupal 8 ต้องการให้ฉันใช้วิธีสาธารณะแทนที่จะเจาะลึกวัตถุด้วยตนเอง ปัญหาคือฉันไม่สามารถหาวิธีที่สอดคล้องกันในการรับรายการวิธีการที่ใช้ได้! (พวกเขามีอยู่อย่างน่าอัศจรรย์และฉันรู้สึกว่าฉันควรจะรู้เกี่ยวกับพวกเขา) สำหรับตัวอย่างนี้สมมติว่าฉันมีประเภทเนื้อหาที่มีฟิลด์วิดีโอ ฉันต้องได้รับ URL ดิบของไฟล์วิดีโอในฟิลด์นั้น ดังนั้นฉันจะเริ่มต้นด้วย node id ($ nid) และอย่างใดฉันต้องคิดวิธีการโหลดโหนด สิ่งนี้ไม่เลวร้ายนักเพราะมีตัวอย่างมากมาย $node = \Drupal\node\Entity\Node::load($nid);ดังนั้นผมจึงทำสิ่งที่ชอบ จนถึงตอนนี้ดีมาก จากนั้นฉันต้องรับค่าฟิลด์วิดีโอของฉัน (field_main_video) สิ่งนี้ทำให้ฉันตลอดไปที่จะคิดออกเพราะมีเอกสารที่ขัดแย้งรอบ 'สุทธิ ในที่สุดฉันก็พบว่าฉันต้องทำอะไรแบบนี้ (เพราะมันเป็นรายการที่มีหลายค่า): $video = \Drupal\node\Entity\Node::load($nid)->field_main_video->getValue(); ... จากนั้นวนรอบอาร์เรย์เป็นต้นการใช้ kint ไม่ได้ช่วยฉันในการค้นหาสิ่งนี้เช่นกัน เพราะตัวอย่างเช่นถ้าฉันkint($node)และดูวิธีการฉันไม่เห็น getValue () เป็นรายการที่มี ยังคงไม่น่ากลัวเพราะมีตัวอย่างเพียงพอที่จะคิดออก ในขณะที่ฉันไปให้ลึกกว่านั้นสิ่งที่ฉันไม่รู้ (นี่คือส่วนสำคัญ) ก็คือแทนที่จะได้รับรหัสเอนทิตีของฟิลด์วิดีโอแล้วโหลดเอนทิตีแล้วค้นหาเอนทิตี "uri" ในเอนทิตี้ ฯลฯ (เช่น ฉันจะเป็น …
9 8  entities 

2
ฉันจะเขียนตัวจัดรูปแบบฟิลด์เพิ่มเติมสำหรับฟิลด์ที่มีอยู่ได้อย่างไร
ฉันต้องการเขียนตัวจัดรูปแบบฟิลด์ใหม่สำหรับประเภทฟิลด์ที่มีอยู่ ฉันไม่ต้องการแทนที่ตัวจัดรูปแบบที่มีอยู่ แต่เสนอตัวเลือกใหม่ หรือฉันควรใช้ theme_preprocess_field () เพื่อทำการเปลี่ยนแปลงเล็กน้อย แต่สิ่งนี้ดูเหมือนจะยากกว่าที่จะรักษาและฉันต้องการเปิดตัวแก้ไขเนื้อหาของฉันไว้ (และใน GUI) ใครสามารถชี้ให้ฉันเป็นตัวอย่างของวิธีที่เหมาะสมในการทำสิ่งนี้?
9 entities 

4
เชื่อมต่อกับฟอร์แมตฟิลด์ของโมดูลอื่นหรือไม่
ฉันกำลังพยายามที่จะใช้ฟิลด์รูปภาพอ้างอิงโหนดบนเว็บไซต์ Drupal 7 ของฉันที่จะเปลี่ยนเป็น 'โหมดดู' ขึ้นอยู่กับตรรกะของโปรแกรมก่อนที่จะเรนเดอร์ ขณะนี้ฟิลด์กำลังแสดงผลในประเภทเนื้อหาจำนวนมากผ่านการตั้งค่าโหมดการแสดงผลซึ่งแต่ละประเภทกำลังใช้ฟอร์แมตฟิลด์ 'โหนดการแสดงผล' ความพยายามครั้งแรก ความคิดแรกของฉันคือการใช้สิ่งต่อไปนี้โดยพิจารณาจาก hook คือ hook คือ hook: function HOOK_field_formatter_view( $entity_type, $entity, $field ... ){ switch ($display['type']) { case 'node_reference_node': /* Programatical logic here to modfy field render settings */ break; } } เห็นได้ชัดว่าการแลกเปลี่ยน HOOK สำหรับชื่อโมดูลของฉัน มันไม่ได้เรื่องจริงๆถ้าข้างต้นจะยิงก่อนหรือหลังฟังก์ชั่นเดิมnode_reference_field_formatter_viewในnode_reference.moduleเพราะผมอาจจะแทนที่ของการส่งออกทั้งหมดหรือหวังว่าปรับเปลี่ยนค่าก่อนการแสดงผล ปัญหาเพียงอย่างเดียวคือตะขอข้างต้นดูเหมือนว่าจะทำงานได้เฉพาะในโมดูลต่อ - คือมันไม่ได้ทั่วทั้งไซต์ดังนั้นโดยทั่วไปจะไม่ทำงานสำหรับโมดูลของฉัน ตอนนี้เห็นได้ชัดว่าฉันสามารถเขียนตัวจัดรูปแบบฟิลด์ของฉันเองเพื่อแสดงผลโหนดที่แสดงผลได้ แต่ดูเหมือนขยะเมื่อพิจารณาว่ามีอยู่แล้ว แนวทางอื่น …
9 entities 

5
ฉันจะแสดงผลฟิลด์ของโหนดโดยทางโปรแกรมตามการตั้งค่าโหมดมุมมองได้อย่างไร?
ฉันต้องการแสดงฟิลด์ของโหนดภายในบล็อก มันได้ผลเช่นนี้: <?php if ($node) { if (isset($node->field_body_secondary) && $field = $node->field_body_secondary->value) { $markup = render($field); $build = array( '#type' => 'markup', '#markup' => $markup, ); } } return $build; แต่นี่ไม่ใช่ 100% ราวกับว่าฉันเพิ่งจะเรนเดอร์ฟิลด์ตามปกติทำให้มองเห็นได้ในการตั้งค่าโหมดดู
9 entities  8 

1
ส่งแบบฟอร์มไปยังแม่แบบกิ่งไม้
ฉันจะส่งแบบฟอร์มไปยังเทมเพลตกิ่งใน Drupal 8 ได้อย่างไร ตัวอย่างเช่นฉันได้รับสิ่งนี้: แบบฟอร์ม: mymodule / src / Form / MyForm.php จากนั้นในตัวควบคุมของฉัน: public function myController() { ?????? return [ '#theme' => 'mytemplate', ?????? ]; } mytemplate.html.twig {{ ????? }}
9 entities  8  theming 

5
อะไรคือข้อดีหรือข้อเสียของการใช้โมดูลอ้างอิงตามแทนโมดูลอนุกรมวิธาน?
ฉันสงสัยว่าจะตัดสินใจใช้โมดูลหลัก Taxonomy หรือโมดูลอ้างอิงเอนทิตีได้อย่างไร ฉันไม่ได้ใช้โมดูลการอ้างอิงเอนทิตีมาก่อน แต่ฉันเคยใช้โมดูลอนุกรมวิธาน (และบางโมดูลที่เกี่ยวข้อง) ในเว็บไซต์ 10-15 แห่ง อะไรคือข้อดีหรือข้อเสียของการใช้โมดูลอ้างอิงตามแทนโมดูลอนุกรมวิธาน? เมื่อเร็ว ๆ นี้ฉันเริ่มสร้างเว็บไซต์เก็บถาวรของนิตยสาร มีนิตยสารมากมาย นิตยสารเหล่านี้มีปัญหา แต่ละประเด็นมีบทความ ที่เล็กที่สุด (และที่ลึกที่สุด) ส่วนนี่เป็นบทความ บทความ หมายเลขหน้า (ช่วง): หัวข้อ: ผู้แต่ง: ประเภทบทความ: คำสำคัญ: นิตยสาร: ปัญหา: ปัญหา หมายเลขการออก: รูปภาพหน้าปก: วันที่ (เผยแพร่): นิตยสาร: นิตยสาร รายละเอียด: รูปภาพหน้าปก: ที่นี่มี (อย่างน้อย) 2 วิธีในการติดตั้งเว็บไซต์นี้: 1.จะมีประเภทเนื้อหาที่เรียกว่าarticleและอื่น ๆ ทั้งหมด (ฉบับ, นิตยสาร, ผู้แต่ง) จะเป็นคำศัพท์ทางอนุกรมวิธาน (ลำดับชั้น) จะมีลำดับชั้นระหว่างปัญหากับนิตยสารเป็นต้น …


3
การสร้างชนิดเนื้อหาที่มีฟิลด์ไฟล์ในโมดูลที่กำหนดเองโดยทางโปรแกรม
ฉันกำลังเขียนโมดูลที่กำหนดเองซึ่งฉันเคยทำมาก่อน แต่นี่เป็นครั้งแรกที่ฉันพยายามสร้างประเภทเนื้อหาที่มีฟิลด์ ฉันใช้งานhook_node_infoและประเภทเนื้อหาแสดงขึ้นในรายการประเภทเนื้อหาในรายการดรอปดาวน์จาก admin_menu อย่างไรก็ตามเมื่อฉันเรียกดูจะadmin/structure/typesไม่อยู่ในรายการ ฉันติดตั้งhook_installและหยิบรหัสที่ฉันพบในคำถาม SO อื่น ฉันมีรหัสพิมพ์ข้อมูลแก้ไขข้อบกพร่องบางอย่างลงในบันทึกข้อผิดพลาดของฉันและมันก็ดูเหมือนว่ามันทำงานได้ทั้งหมด แต่เมื่อฉันเรียกดูโครงสร้างเนื้อหาประเภทมันไม่แสดงเขตข้อมูลที่ฉันเพิ่ม นี่คือตะขอ: function mymod_node_info() { return array( 'mymod_content' => array( 'name' => t('My Mod'), 'base' => 'mymod_content', 'description' => t('A Description'), ) ); } function mymod_install() { error_log('mymod_install'); $types = node_type_get_types(); if ( ! field_info_field('field_mymod_myfile') ) { $field = array( 'field_name' …

5
วิธีการลบการรวบรวมฟิลด์อย่างถูกต้อง?
รุ่น Drupal: 7.21 โมดูลโมดูลการรวบรวมฟิลด์: 7.x-1.0-beta5 คำอธิบายสั้น ๆ : ฉันไม่ว่างที่จะพยายามนำเข้าคอลเลกชันฟิลด์โดยทางโปรแกรม แต่เมื่อลบบางรายการจะมีการรวบรวมฟิลด์ 'ปลอม' อยู่เสมอ คำอธิบายแบบยาว : ผู้ใช้ของฉันมีฟิลด์การรวบรวมฟิลด์ในโปรไฟล์ของพวกเขา การรวบรวมฟิลด์นี้มี 3 ฟิลด์ข้อความ ฉันต้องการนำเข้าข้อมูลจากฐานข้อมูล sql แบบกำหนดเองไปยังการรวบรวมฟิลด์ของผู้ใช้ การรวบรวมฟิลด์นี้สามารถมีได้หลายค่า เมื่อฉันนำเข้าข้อมูลเป็นครั้งแรกที่ทุกอย่างทำงานได้ดีฉันเห็นข้อมูลในฟิลด์ของการรวบรวมฟิลด์ ยิ่งใหญ่ แต่ที่นี่ส่วนที่ยุ่งยากมา สมมติว่าฉันนำเข้าสำหรับผู้ใช้ที่ระบุ 5 แถวจากฐานข้อมูลที่กำหนดเอง พวกมันจะถูกเพิ่มลงในคอลเลกชันฟิลด์ดังนั้นคอลเลกชันฟิลด์นี้มี 5 รายการแต่ละรายการมี 3 ฟิลด์ จากนั้นฉันลบบางแถวออกจากฐานข้อมูลที่กำหนดเองของฉันเพื่อที่ฉันจะได้เหลือเพียง 3 แถวสำหรับผู้ใช้รายนี้ ฉันเรียกใช้การนำเข้าอีกครั้งอัปเดต 3 รายการแรกของการรวบรวมฟิลด์ แต่จากนั้นฉันเหลือ 2 รายการจากการนำเข้าก่อนหน้า ควรลบเพราะฉันมีแถวที่นำเข้าเพียง 3 แถว แต่ยังมีรายการคอลเลกชันฟิลด์ 5 รายการ ดังนั้นฉันจึงพยายามที่จะลบรายการคอลเลกชันเขตข้อมูลเหล่านี้ แต่มีอย่างน้อยหนึ่งรายการที่เหลือ …
9 7  entities 

1
เหตุใดภาษาของฟิลด์เนื้อหาจึงไม่บันทึกเป็นภาษาเดียวกับโหนด
ฉันมีปัญหาที่ผู้ใช้กำลังสร้างโหนดใหม่และป้อนเนื้อความ แต่ตั้งค่าโหนดเป็น "ภาษาเป็นกลาง" สำหรับภาษา แต่เมื่อมันบันทึกโหนดภาษาของฟิลด์ body จะถูกตั้งค่าเป็นภาษาอังกฤษ ทำไมสิ่งนี้ถึงเกิดขึ้น อะไรจะทำให้เกิดสิ่งนี้ ในเว็บไซต์นี้เราเปิดใช้งานและกำหนดค่าทั้งภาษาอังกฤษและฝรั่งเศส เว็บไซต์นี้ D7 ใช้งาน i18n สิ่งนี้คล้ายกับเนื้อความว่างเปล่าในหน้าแก้ไขโหนดยกเว้นว่าฉันต้องการทราบว่าฟิลด์จะมีภาษาที่แตกต่างจากโหนดในตอนแรกได้อย่างไร

5
บังคับให้สร้างรูปแบบรูปภาพบนโหนดบันทึก
ฉันยังคงมีปัญหาของฉันอธิบายที่นี่รูปแบบภาพที่นำมาใช้ใหม่ในรายการคอลเลกชันสนามแต่ฉันให้ขึ้นเพื่อแก้ปัญหา วิธีแก้ปัญหาที่เกิดขึ้นในใจของฉันคือการบังคับให้สร้างจินตภาพบนโหนด มีความเป็นไปได้ที่จะทำเช่นนั้น?
9 7  media  entities 

2
บันทึกค่าใหม่ด้วย entity_metadata_wrapper ลงในฟิลด์เอนทิตีซึ่งเป็นอาร์เรย์
ฉันต้องการบันทึกค่าใหม่ให้กับเขตข้อมูลบนเอนทิตีและฉันสงสัยว่ามันเป็นไปได้ที่จะใช้เอนทิตีเมทาทาทาฐานที่ตั้งหรือมันเป็นไปได้เพียงเพื่อตั้งค่าที่มีอยู่?
9 entities 

5
เพิ่มเขตข้อมูลลงในเนื้อหาหลายประเภทพร้อมกันหรือไม่
ฉันต้องการเพิ่มเขตข้อมูลลงในเนื้อหาหลายประเภทพร้อมกันและกำหนดค่าให้กับทุกประเภทพร้อมกัน เหตุผลก็คือฉันมีเนื้อหาหลายประเภททุกประเภทต้องได้รับการอัปเดตโดยเพิ่มฟิลด์ใหม่ให้กับแต่ละรายการ ฟิลด์นี้จะได้รับการกำหนดค่าเหมือนกันสำหรับประเภทเนื้อหาทั้งหมดเช่นกัน ฉันต้องทำซ้ำขั้นตอนการเพิ่มนี้จากนั้นกำหนดค่าฟิลด์ทุกประเภทเนื้อหาที่ฉันต้องการเพิ่มและมันจะลำบากหลังจากผ่านไประยะหนึ่ง มีวิธีใดบ้างในการเพิ่ม / กำหนดค่าจำนวนมากของเขตข้อมูลใหม่ให้กับเนื้อหาหลายประเภท
9 7  entities  nodes 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.