Score:1

ขอตัวเลือกเว็บฟอร์ม WEBFORM OPTIONS ID alter()

ธง cn

[{"value_1":"Dragon fly"},{"value_1":"Agapostemon angelicus"},{"value_1":"Albuna oberthuri"},{"value_1":"Callohesma flavopicta"}]

นี่คือข้อมูล JSON ที่ฉันต้องใช้เพื่อนำเข้าวิทยุในรูปแบบเว็บ drupal 8 ฉันกำลังใช้ hook_webform_options_WEBFORM_OPTIONS_ID_alter() https://www.drupal.org/docs/8/modules/webform/webform-cookbook/how-to-use-options-from-an-external-webservice

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

[{"แมลงวันมังกร":"แมลงวันมังกร"},{"Agapostemon angelicus":"Agapostemon angelicus"},{"Albuna oberthuri":"Albuna oberthuri"},{"Callohesma flavopicta":"Callohesma flavopicta"}] มีหลายรายการและข้อมูลมากมาย แต่ปัญหาเดียวกัน

นี่คือรหัสจากโมดูลที่ฉันทำตามคำแนะนำ:

 * ใช้ hook_webform_options_WEBFORM_OPTIONS_ID_alter()
 */
ฟังก์ชัน my_module_webform_options_external_countries_alter (อาร์เรย์ &$ตัวเลือก อาร์เรย์ &$องค์ประกอบ) {
  // โหลดตัวเลือกแคช
  ถ้า ($cache = \Drupal::cache()->get('external_countries')) {
    $options = $cache->ข้อมูล;
    กลับ;
  }

  // รับข้อมูลเป็นอาร์เรย์ที่เชื่อมโยงจากเว็บเซอร์ภายนอก
  $external_countries_url = 'https://gist.githubusercontent.com/mshafrir/2646763/raw/8b0dbb93521f5d6889502305335104218454c2bf/states_hash.json';
  $options = json_decode(file_get_contents($external_countries_url), จริง);

  // ตัวเลือกแคชเพื่อที่เราจะได้ไม่ต้องร้องขออย่างต่อเนื่อง
  // ไปยังเว็บเซอร์วิสภายนอก
  \Drupal::cache()->set('external_countries', $ตัวเลือก);
}

Geat avatar
de flag
เพียงตรวจสอบว่าคุณแทนที่ CUSTOM_MODULE ด้วยชื่อเครื่องของโมดูลของคุณหรือไม่
Dragan Petrovic FSD avatar
cn flag
That CUSTOM_MODULE is copied from drupal, but unfortunately, you got a point I said that I made followed by instructions, it's a typo.
cn flag
@DraganPetrovicFSD ไม่จำเป็นต้องแก้ไขคำถามของคุณเพื่อทำเครื่องหมายว่า "แก้ไขแล้ว" คุณควรรอสองสามวันแล้วทำเครื่องหมายในช่องสีเขียวเพื่อทำเครื่องหมายคำตอบของคุณว่าเป็นคำตอบที่ยอมรับ
Score:3
ธง cn

ฉันเพิ่งพบวิธีแก้ปัญหา ฉันคงอธิบายไม่เก่งก็เลยไม่มีคำตอบ ฉันหวังว่าวิธีแก้ปัญหาที่ฉันมีจะอธิบายสถานการณ์ที่ฉันเป็นอยู่ได้ดีขึ้น

ฟังก์ชัน external_usa_list_webform_options_external_countries_alter (อาร์เรย์ &$ตัวเลือก อาร์เรย์ &$องค์ประกอบ) {
  // โหลดตัวเลือกแคช
  ถ้า ($cache = \Drupal::cache()->get('external_countries')) {
    $options = $cache->ข้อมูล;
    กลับ;
  }

  // รับข้อมูลเป็นอาร์เรย์ที่เชื่อมโยงจากเว็บเซอร์ภายนอก
  $external_countries_url = 'https://gist.githubusercontent.com/mshafrir/2646763/raw/8b0dbb93521f5d6889502305335104218454c2bf/states_hash.json';
  $options = json_decode(file_get_contents($external_countries_url), จริง);

  $options = array_combine(array_values($options), array_values($options));

  // ตัวเลือกแคชเพื่อที่เราจะได้ไม่ต้องร้องขออย่างต่อเนื่อง
  // ไปยังเว็บเซอร์วิสภายนอก
  \Drupal::cache()->set('external_countries', $ตัวเลือก);
}

โพสต์คำตอบ

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