Điểm:0

Trình định dạng trường tùy chỉnh với đốm màu, giá trị luôn trống

lá cờ lc

Tôi có trường tùy chỉnh sau:

/**
 * Triển khai plugin của loại trường 'price_table'.
 *
 * @Loại lĩnh vực(
 * id = "bảng_giá",
 * default_widget = "price_table_widget",
 * default_formatter = "price_table_formatter",
 * )
 */
lớp PriceTable mở rộng FieldItemBase {

  hàm tĩnh công khai mainPropertyName (): chuỗi {
    trả về 'giá trị';
  }

  lược đồ hàm tĩnh công khai (FieldStorageDefinitionInterface $ field_definition): mảng {
    trở lại [
      'cột' => [
        'giá trị' => [
          'loại' => 'đốm màu',
          'kích thước' => 'lớn',
          'nối tiếp hóa' => ĐÚNG,
        ],
      ],
    ];
  }

  thuộc tính hàm tĩnh công khai Định nghĩa (FieldStorageDefinitionInterface $ field_definition): mảng {
    $properties['value'] = MapDataDefinition::create()
      ->setLabel(t('Dữ liệu bảng'));

    trả lại thuộc tính $;
  }

  hàm công khai setValue($values, $notify = TRUE) {
    if (isset($values) && !empty($values['table'])) {
      $values['value'] = $values['table'];
      unset($values['table']);
      cha mẹ::setValue($values, $notify);
    }
  }

  hàm công khai isEmpty(): bool {
    cố gắng {
      $value = $this->get('value')->getValue();
      dpm($value); //<<<
      trả về !is_array($value) || trống($giá trị);
    } bắt (MissingDataException | InvalidArgumentException $e) {
      trả về SAI;
    }
  }

}

với tiện ích thích hợp (sử dụng thành phần biểu mẫu bảng) và trình định dạng. Quá trình chỉnh sửa diễn ra suôn sẻ, dữ liệu được tuần tự hóa được lưu trữ vào bản ghi cơ sở dữ liệu của thực thể của tôi. Tuy nhiên, khi đến với bộ định dạng, nó không hiển thị gì cả vì isEmpty() ở trên luôn nhận một giá trị trống và trả về SAI. Các đốm màu được lưu trữ ổn định (nhờ đặt giá trị() ở trên) nhưng nó không được trường truy xuất.

Tôi đang thiếu gì ở đây?

Điểm:0
lá cờ lc

Đừng bận tâm... :-)

hàm công khai isEmpty(): bool {
  cố gắng {
    $value = $this->getValue();

Thật đơn giản.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.