Score:1

จะใช้entityQueryกับประเภทฟิลด์ที่กำหนดเองได้อย่างไร

ธง mx
awm

ฉันกำลังสร้างคิวรีสำหรับโหนดที่มีฟิลด์ที่กำหนดเองสองสามฟิลด์ (ประเภทฟิลด์) ฟิลด์นี้สร้างขึ้นเองในโมดูลแบบกำหนดเองพร้อมสคีมาแบบกำหนดเอง เมื่อฉันดำเนินการค้นหา:

 $query = \Drupal::entityQuery('โหนด')
    ->เงื่อนไข ('ประเภท', 'สถานที่');
 $query->condition('my_custom_field', '', '<>');

มันล้มเหลวโดยมีข้อความระบุว่า: node__my_custom_field.my_custom_field_value ไม่มีอยู่ (ไม่พบ) ถูกต้อง ตารางมีสคีมาที่กำหนดเองสำหรับฟิลด์นี้ _ค่า ไม่ได้อยู่:

 drush sqlq "อธิบาย node__my_custom_field"

ชุด varchar (128) ไม่มี MUL     
ลบ Tinyint(4) ไม่มี PRI 0   
entity_id int(10) ที่ไม่ได้ลงนาม NO PRI NULL    
revision_id int(10) ที่ไม่ได้ลงนาม NO MUL NULL    
langcode varchar (32) ไม่มี PRI     
delta int(10) ที่ไม่ได้ลงนาม NO PRI NULL    
ข้อความ my_custom_field_title ใช่ เป็นโมฆะ    
ข้อความ my_custom_field_description ใช่ เป็นโมฆะ

ฉันจะทำให้แบบสอบถามฟิลด์เอนทิตีของฉันทำงานกับสคีมาแบบกำหนดเองของฟิลด์นี้ได้อย่างไร

Score:2
ธง cn

ดูเหมือนว่าประเภทฟิลด์ที่คุณกำหนดเองมี ชื่อ และ คำอธิบาย คอลัมน์มากกว่า ค่า (Drupal เริ่มต้นจะถือว่าถ้าคุณไม่บอกเป็นอย่างอื่น)

คุณสามารถระบุคอลัมน์ฟิลด์ที่จะใช้ด้วย . สัญกรณ์เช่นนี้:

$query->condition('my_custom_field.title', '', '<>');
$query->condition('my_custom_field.description', '', '<>');

หากต้องการให้ระบบพิจารณา เช่น ชื่อ คุณสมบัติเป็นค่าเริ่มต้นแทน ค่าคุณสามารถใช้ FieldItemBase::mainPropertyName() ในชั้นเรียนภาคสนามของคุณ:

ฟังก์ชันคงที่สาธารณะ mainPropertyName () {
  กลับ 'ชื่อเรื่อง';
}

นั่นจะทำให้บรรทัดเดิมของคุณใช้งานได้สำหรับ ชื่อ คอลัมน์:

$query->condition('my_custom_field', '', '<>');
awm avatar
mx flag
awm
ขอบคุณ .. ฉันควรจะคิดอันนี้ ..

โพสต์คำตอบ

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