Score:3

จะรับชื่อฟิลด์ในตัวจัดการการตรวจสอบได้อย่างไร

ธง kz

ฉันมีธรรมเนียม คลาส TextWidget ขยาย WidgetBase

ข้างในฉันมีตัวจัดการการตรวจสอบแบบกำหนดเองที่มีลักษณะดังนี้:

ตรวจสอบฟังก์ชั่นสาธารณะ ($ element, FormStateInterface $ form_state) {
  $value = $องค์ประกอบ['#value'];
  $label = 'ฟิลด์นี้'; // มีวิธีใดในการรับชื่อฟิลด์ที่มนุษย์เผชิญหน้า
  ถ้า (strlen($value) === 0) {
    $form_state->setError($element, $this->t('@label ต้องไม่ว่างเปล่า', ['@label' => $label]));
  }
}

มันแสดงข้อผิดพลาด "ฟิลด์นี้ไม่สามารถว่างเปล่า" หากฟิลด์นั้นว่างเปล่า

ฉันต้องการแทนที่ข้อความคงที่ 'ฟิลด์นี้' ด้วยชื่อจริงของฟิลด์

มีวิธีการสาธารณะที่ให้ฉันทำเช่นนั้นหรือไม่?

Score:7
ธง us

คลาสที่ขยายออกไป WidgetBase สามารถรับฉลากกับ $this->fieldDefinition->getLabel(). ที่ใช้เช่นจาก WidgetBase::แบบฟอร์ม().

$องค์ประกอบ = [
  '#title' => $this->fieldDefinition->getLabel(),
  '#description' => $this->getFilteredDescription(),
];

โพสต์คำตอบ

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