Score:0

ตัวจัดรูปแบบฟิลด์แบบกำหนดเองพร้อมหยด ค่าว่างเปล่าเสมอ

ธง lc

ฉันมีฟิลด์ที่กำหนดเองต่อไปนี้:

/**
 * การใช้งานปลั๊กอินของประเภทฟิลด์ 'price_table'
 *
 * @FieldType(
 * id = "ราคา_ตาราง",
 * default_widget = "ราคา_table_widget",
 * default_formatter = "ราคา_ตาราง_รูปแบบ",
 * )
 */
class PriceTable ขยาย FieldItemBase {

  ฟังก์ชันสแตติกสาธารณะ mainPropertyName (): สตริง {
    ส่งคืน 'ค่า';
  }

  สคีมาฟังก์ชันสแตติกสาธารณะ (FieldStorageDefinitionInterface $field_definition): อาร์เรย์ {
    กลับ [
      'คอลัมน์' => [
        'ค่า' => [
          'type' => 'หยด',
          'ขนาด' => 'ใหญ่',
          'ซีเรียลไลซ์' => จริง,
        ]
      ]
    ];
  }

  คุณสมบัติฟังก์ชันคงที่สาธารณะคำนิยาม (FieldStorageDefinitionInterface $field_definition): อาร์เรย์ {
    $properties['value'] = MapDataDefinition::create()
      ->setLabel(t('ข้อมูลตาราง'));

    ส่งคืนคุณสมบัติ $;
  }

  ฟังก์ชันสาธารณะ setValue (ค่า $, $notify = TRUE) {
    ถ้า (isset($values) && !empty($values['table'])) {
      $values['value'] = $values['ตาราง'];
      unset($values['ตาราง']);
      parent::setValue($values, $notify);
    }
  }

  ฟังก์ชั่นสาธารณะ isEmpty (): บูล {
    พยายาม {
      $value = $this->get('value')->getValue();
      dpm (ค่า $); //<<<
      ส่งคืน !is_array($value) || ว่างเปล่า (ค่า $);
    } catch (MissingDataException | InvalidArgumentException $e) {
      กลับ FALSE;
    }
  }

}

ด้วยวิดเจ็ตที่เหมาะสม (โดยใช้องค์ประกอบฟอร์มตาราง) และตัวจัดรูปแบบที่มีอยู่ การแก้ไขดำเนินไปได้ด้วยดี ข้อมูลซีเรียลไลซ์จะถูกจัดเก็บไว้ในบันทึกฐานข้อมูลของเอนทิตีของฉัน อย่างไรก็ตาม เมื่อพูดถึงฟอร์แมตเตอร์ มันไม่แสดงอะไรเลยเพราะ มันว่างเปล่า() ด้านบนจะได้รับค่าว่างและส่งคืนเสมอ เท็จ. หยดถูกเก็บไว้ทั้งหมด (ขอบคุณ ตั้งค่า() ด้านบน) แต่ไม่ถูกดึงข้อมูลโดยฟิลด์

ฉันพลาดอะไรไปที่นี่?

Score:0
ธง lc

ช่างเถอะ... :-)

ฟังก์ชั่นสาธารณะ isEmpty (): บูล {
  พยายาม {
    $value = $this->getValue();

ที่เรียบง่าย

โพสต์คำตอบ

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