Lập trình có được một hình thức trong Drupal 8


12

Các tài liệu nêu:

Đối số được truyền cho phương thức getForm () là tên của lớp xác định biểu mẫu của bạn và là một triển khai của \ Drupal \ Core \ Form \ FormBuilderInterface.

Làm cách nào để tìm ra tên của lớp xác định biểu mẫu phản hồi trang web được cung cấp bởi mô-đun liên hệ cốt lõi (id biểu mẫu là feedback_contact_message_form:).

Khi tôi dpm()biểu mẫu tôi có thể thấy rằng có một lớp được định nghĩa:

$input array(30)
  '#attributes' => array(1)
    'class' => array(3)
      string(29) "feedback-contact-message-form"
      string(20) "contact-message-form"
      string(12) "contact-form"

Tôi đã thử nhiều dạng khác nhau như tham số này để chuyển đến:

\Drupal::formBuilder()->getForm();

nhưng không có may mắn Cảm ơn


1
Các hình thức liên lạc là các thực thể, vì vậy tôi tưởng tượng tất cả chúng đến từ Drupal\contact\ContactFormEditForm. Không chắc chắn có một cách dễ dàng để tìm ra điều đó trừ khi bạn biết đó là một hình thức thực thể. Cách tốt nhất có thể là xem trong srcthư mục của mô-đun cho các tệp có tên kết thúc Form.php. Tôi nghĩ đó là một quy ước an toàn để tuân theo
Clive

Sẽ không có câu trả lời của Berdir trong câu hỏi của tôi giúp đỡ? drupal.stackexchange.com/questions/146617/ từ
alexej_d 11/215

Cảm ơn, nhưng tôi không làm theo câu trả lời của Berdir. Tôi đã thêm plugin khối bên dưới câu trả lời của mình - thêm hai dòng đầu tiên từ mẫu mã của bạn. Nơi nào tôi đi từ đây? Cảm ơn.
24ma13wg

Câu trả lời:


13

Điều này ám chỉ trong một plugin khối:

class myModule extends BlockBase {
  public function build() {

    $default_form = \Drupal::config('contact.settings')->get('default_form');
    $entity = \Drupal::entityManager()->getStorage('contact_form')->load($default_form);

    $message = \Drupal::entityManager()
      ->getStorage('contact_message')
      ->create(array(
        'contact_form' => $entity->id(),
      ));

    $form = \Drupal::service('entity.form_builder')->getForm($message);

    return $form;
  }
}

Tôi có cùng một vấn đề. chúng ta có thể chia sẻ ghi chú và trò chuyện không? Tất cả những gì tôi muốn làm chỉ là lấy một biểu mẫu từ một nơi nào đó trên trang web và xuất nó ở một nơi khác trong trường văn bản hỗ trợ PHP.
Patoshi パ ト

Làm thế nào tôi có thể gửi mẫu thực thể này theo chương trình?
Unnikrish Nam

nếu biểu mẫu cần hành động trên #after_build, cho hoạt động ajax, chúng tôi có giải pháp nào không?
allabakash.g
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.