Điểm:0

Cách đặt vi phạm thành trường mã bưu chính trên Trường địa chỉ

lá cờ ye

Trường địa chỉ là tập hợp các trường khác mà một trong số đó là mã bưu chính. Tôi đã viết một ràng buộc xác thực tùy chỉnh. Nó được áp dụng và làm việc. nhưng thông báo lỗi hiển thị cho tất cả các trường của trường Địa chỉ, tôi chỉ muốn nó cho Postal_code, làm sao có thể?

Đây là lớp ZipCodeValueValidator của tôi

<?php

không gian tên Drupal\zip_code_lookup\Plugin\Validation\Constraint;

sử dụng Symfony\Component\Validator\Constraint;
sử dụng Symfony\Thành phần\Validator\ConstraintValidator;

/**
 * Xác thực ràng buộc Mã Zip.
 */
lớp ZipCodeValueValidator mở rộng ConstraintValidator
{

  /**
   * {@inheritdoc}
   */
  xác thực hàm công khai ($items, Ràng buộc $constraint)
  {
    foreach ($items as $item) {
      if ($this->validateZip($item)) {
        $errorMessage = "Đây là thông báo lỗi mới do tôi viết.";
        $this->context->buildViolation($errorMessage)
        ->atPath('field_billing.postal_code')
        ->addViolation();
      }
    }
  }


  hàm riêng validateZip($value)
  {
    trả về ĐÚNG;
  }
}

Và ở đây tôi đặt nó vào trường

<?php

sử dụng Drupal\Core\Entity\EntityTypeInterface;
/**
 * Triển khai hook_entity_bundle_field_info_alter().
 */
hàm zip_code_lookup_entity_bundle_field_info_alter(&$fields, EntityTypeInterface $entity_type, $bundle)
{
    if ($entity_type->id() === 'nhóm') {
        if ($bundle == 'thuê bao') {
            if (isset($fields['field_billing'])) {
                $fields['field_billing']->addConstraint('Mã Zip', []);
            }
        }
    }
}

https://www.drupal.org/docs/drupal-apis/entity-api/entity-validation-api/providing-a-custom-validation-constraint

nhập mô tả hình ảnh ở đây

Razeem Ahmad avatar
lá cờ ru
Điều tôi hiểu từ bài đăng của bạn là bạn đang chỉ định trường field_billing chứa tất cả các trường trong thực thể địa chỉ. Thay vào đó, đối với bạn zip_code trong Thực thể địa chỉ cần được sử dụng để thêm ràng buộc

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