ฉันกำลังสร้างปลั๊กอินฟิลด์มุมมองที่กำหนดเอง และฉันมีประกาศจำนวนมากใน dblog ที่ฉันไม่สามารถติดตามได้
เป็นปลั๊กอินฟิลด์มุมมองอย่างง่ายที่แสดงผลเนื้อหาบางส่วนลงในฟิลด์ "ไม่ใช่ฐานข้อมูล" ที่กำหนดเองในมุมมอง
ปัญหา #1 คือในมุมมอง ฟิลด์จะแสดงเป็นเพียง ':' (กลุ่มฟิลด์และชื่อฟิลด์จะไม่แสดงบนมุมมอง)
ประการที่สอง ฉันได้รับการแจ้งเหล่านี้ใน dblog ประกาศ: พยายามเข้าถึงอาร์เรย์ออฟเซ็ตตามค่าประเภท null ใน Drupal\views\Plugin\views\HandlerBase->adminLabel() (บรรทัดที่ 159 ของ /home/jfurnas/sites/lms/docroot/core/modules/views/src/ ปลั๊กอิน/มุมมอง/HandlerBase.php)
ข้อผิดพลาดเหล่านี้จะปรากฏขึ้นก็ต่อเมื่อฉันอยู่ใน UI มุมมองเพื่อจัดการมุมมอง หากฉันดูมุมมองเป็นประจำจะไม่ใส่ข้อผิดพลาดใน dblog
ฉันกำลังกำหนดฟิลด์ในไฟล์ my_module.views.inc ของฉัน
ฟังก์ชัน request_system_views_data() {
$data['lms_request']['request_system_quick_edit'] = [
'title' => t('คำขอแก้ไขด่วน'),
'help' => t('รายละเอียดคำขอแก้ไขด่วน'),
'group' => 'คำขอ LMS',
'ฟิลด์' => [
'title' => 'คำขอแก้ไขด่วน',
'id' => 'request_system_quick_edit',
]
];
}
โดยที่ 'lms_request' คือชื่อเครื่องของเอนทิตีแบบกำหนดเองในระบบ และคลาส fieldplug ของฉันถูกกำหนดดังนี้:
<?php
เนมสเปซ Drupal\request_system\Plugin\views\field;
ใช้ Drupal\views\Plugin\views\field\FieldPluginBase;
ใช้ Drupal\views\ResultRow;
ใช้ Drupal\Core\Form\FormStateInterface;
ใช้ Drupal\Core\Url;
/**
* ให้ตัวจัดการฟิลด์แก้ไขด่วน
*
* @ViewsField("request_system_quick_edit")
*
*@ดีซีจี
* ต้องกำหนดปลั๊กอินให้กับคอลัมน์ตารางเฉพาะผ่าน
* hook_views_data() หรือ hook_views_data_alter()
* สำหรับคอลัมน์ที่ไม่มีอยู่จริง (เช่น ฟิลด์ที่คำนวณ) คุณต้องแทนที่
* วิธี self::query()
*/
คลาส QuickEdit ขยาย FieldPluginBase {
/**
* {@inheritdoc}
*/
แบบสอบถามฟังก์ชันสาธารณะ () {
กลับ [];
}
// /**
// * {@inheritdoc}
// */
ฟังก์ชั่นสาธารณะ กำหนดตัวเลือก () {
กลับ [];
}
// /**
// * {@inheritdoc}
// */
ฟังก์ชันสาธารณะ buildOptionsForm (&$form, FormStateInterface $form_state) {
parent::buildOptionsForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
ฟังก์ชั่นสาธารณะแสดงผล (ResultRow $values) {
$entity = $values->_entity;
$build['#แคช'] = [
'อายุสูงสุด' => 0
];
$build['request_information'] = [
'#markup' => 'ขอข้อมูลสำหรับคำขอ #' $entity->id(),
];
ส่งคืน $build;
}
}
ฉันไม่แน่ใจว่าปัญหาคืออะไร ฉันกำหนดฟิลด์ที่กำหนดเองอื่นๆ ในระบบในทำนองเดียวกัน
และไม่ก่อให้เกิดปัญหาเดียวกัน