Điểm:1

Tùy chọn biểu mẫu web Hook TÙY CHỌN WEBFORM ID thay đổi()

lá cờ cn

[{"value_1":"Rồng bay"},{"value_1":"Agapostemon angelicus"},{"value_1":"Albuna oberthuri"},{"value_1":"Callohesma flavopicta"}]

Đây là dữ liệu JSON tôi cần sử dụng để nhập cho radio trong 8 biểu mẫu web drupal. Tôi đang sử dụng 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

Tôi không thể sử dụng value_1 làm khóa trong radio, vì nó không phải là duy nhất, vì vậy tôi cần bằng cách nào đó sao chép giá trị vào khóa và nhận cùng một dữ liệu ở cả hai bên, giống như thế này.

[{"Rồng bay":"Rồng bay"},{"Agapostemon angelicus":"Agapostemon angelicus"},{"Albuna oberthuri":"Albuna oberthuri"},{"Callohesma flavopicta":"Callohesma flavopicta"}] có nhiều danh sách và nhiều dữ liệu nhưng cùng một vấn đề.

Đây là mã từ mô-đun tôi đã thực hiện theo hướng dẫn:

 * Triển khai hook_webform_options_WEBFORM_OPTIONS_ID_alter().
 */
function my_module_webform_options_external_countries_alter(mảng &$options, mảng &$element) {
  // Tải các tùy chọn đã lưu trong bộ nhớ cache.
  if ($cache = \Drupal::cache()->get('external_countries')) {
    $options = $cache->dữ liệu;
    trở lại;
  }

  // Lấy dữ liệu dưới dạng mảng kết hợp từ dịch vụ web bên ngoài.
  $external_countries_url = 'https://gist.githubusercontent.com/mshafrir/2646763/raw/8b0dbb93521f5d6889502305335104218454c2bf/states_hash.json';
  $options = json_decode(file_get_contents($external_countries_url), TRUE);

  // Tùy chọn bộ đệm để chúng tôi không phải thực hiện các yêu cầu liên tục
  // đến dịch vụ web bên ngoài.
  \Drupal::cache()->set('external_countries', $options);
}

Geat avatar
lá cờ de
Chỉ cần kiểm tra xem bạn đã thay thế CUSTOM_MODULE bằng tên máy của mô-đun của mình chưa?
Dragan Petrovic FSD avatar
lá cờ cn
CUSTOM_MODULE đó được sao chép từ drupal, nhưng thật không may, bạn có một điểm mà tôi đã nói rằng tôi đã thực hiện theo hướng dẫn, đó là một lỗi đánh máy.
lá cờ cn
@DraganPetrovicFSD Không cần chỉnh sửa câu hỏi của bạn để đánh dấu nó là "GIẢI QUYẾT". Thay vào đó, bạn nên đợi một vài ngày rồi đánh dấu vào ô màu lục để đánh dấu câu trả lời của bạn là câu trả lời được chấp nhận.
Điểm:3
lá cờ cn

Tôi chỉ tìm thấy một giải pháp. Chắc mình giải thích chưa kĩ nên không có câu trả lời. Tôi hy vọng rằng giải pháp cho vấn đề tôi gặp phải sẽ giải thích rõ hơn tình huống mà tôi gặp phải.

chức năng bên ngoài_usa_list_webform_options_external_countries_alter(mảng &$options, mảng &$element) {
  // Tải các tùy chọn đã lưu trong bộ nhớ cache.
  if ($cache = \Drupal::cache()->get('external_countries')) {
    $options = $cache->dữ liệu;
    trở lại;
  }

  // Lấy dữ liệu dưới dạng mảng kết hợp từ dịch vụ web bên ngoài.
  $external_countries_url = 'https://gist.githubusercontent.com/mshafrir/2646763/raw/8b0dbb93521f5d6889502305335104218454c2bf/states_hash.json';
  $options = json_decode(file_get_contents($external_countries_url), TRUE);

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

  // Tùy chọn bộ đệm để chúng tôi không phải thực hiện các yêu cầu liên tục
  // đến dịch vụ web bên ngoài.
  \Drupal::cache()->set('external_countries', $options);
}

Đă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.