Điểm:3

Lưu trữ đúng một mảng trong một đối tượng cấu hình

lá cờ in

Trong đối tượng cấu hình, tôi muốn lưu trữ một mảng giá trị. Các phím quan trọng. Giá trị được lưu trữ đến từ phần tử hộp kiểm, vì vậy mảng sẽ trông giống như sau:

['bài viết' => 'bài viết', 'trang' => 'trang']

Đây là lược đồ cấu hình:

mymodule.settings:
  gõ: config_entity
  nhãn: 'Cài đặt Breadcrumb của Mymodule'
  lập bản đồ:
    nút_gói:
      loại: lập bản đồ
      nhãn: 'Gói tên máy.'

Điều này dường như hoạt động trên bề mặt, nhưng chạy thử nghiệm chức năng dẫn đến:

Lỗi lược đồ cho mymodule.settings với các lỗi sau: mymodule.settings:node_bundles.page thiếu lược đồ

điều đó khiến tôi thêm vào:

được bảo vệ $strictConfigSchema = FALSE;

sau đó các bài kiểm tra vượt qua - nhưng sau đó lỗi tiêu chuẩn mã hóa Drupal được kích hoạt.

Định nghĩa lược đồ phù hợp mà tôi cần là gì?

Điểm:4
lá cờ in

Đây là trường hợp sử dụng sự nối tiếp. Không giống như ánh xạ, các khóa là tùy chọn và không cần được mô tả bằng lược đồ.

Từ Lược đồ cấu hình/siêu dữ liệu:

trình tự: Thuộc tính trên giá trị của loại trình tự, được sử dụng để xác định danh sách tùy ý các giá trị được xác định. Trong một chuỗi, các khóa là tùy chọn và có thể là số nguyên hoặc chuỗi và không được ánh xạ rõ ràng. Chỉ các loại giá trị phải được xác định trong lược đồ.

Xa hơn nữa trong cùng tài liệu đó, chúng tôi thấy các ví dụ cho Định nghĩa trình tự. Ví dụ thứ hai, Xác định một lược đồ mới, trông rất giống trường hợp của bạn.

Định nghĩa lược đồ:

tên miền.language_negotiation:
  gõ: config_object
  nhãn: 'Thương lượng ngôn ngữ miền'
  lập bản đồ:
    tên miền_ngôn ngữ:
      loại: trình tự
      nhãn: 'Miền'
      sự nối tiếp:
        loại: chuỗi
        nhãn: 'Lập bản đồ mã Langcode'

Cấu hình ví dụ được hỗ trợ bởi định nghĩa giản đồ trên:

tên miền_ngôn ngữ:
  ví dụ_local: vi
  one_example_local: af
  two_example_local: af
  three_example_local: vi
  four_example_local: vi

Đối với trường hợp cụ thể của bạn, bạn có thể cập nhật định nghĩa lược đồ của mình như:

mymodule.settings:
  gõ: config_entity
  nhãn: 'Cài đặt Breadcrumb của Mymodule'
  lập bản đồ:
    nút_gói:
      # Thay đổi từ ánh xạ sang trình tự
      loại: trình tự
      nhãn: 'Gói tên máy.'
      # MỚI: mô tả các giá trị trình tự của bạn.
      sự nối tiếp:
        loại: chuỗi
        nhãn: 'bất cứ thứ gì bạn gọi là "giá trị" của mảng node_bundles của bạn'
Kevin avatar
lá cờ in
Tôi đã thử thay đổi thành một trình tự, sau đó kiểm tra báo cáo: "Lỗi lược đồ cho mymodule.settings với các lỗi sau: mymodule.settings:node_bundles.0 thiếu lược đồ "
sonfd avatar
lá cờ in
Cập nhật với những gì tôi tin rằng sẽ giải quyết vấn đề của bạn.
Kevin avatar
lá cờ in
Điều đó đã làm việc, cảm ơn. Bây giờ tôi có thể bỏ kiểm tra nghiêm ngặt và kẻ nói dối vẫn ổ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.