Chúng tôi có hai thực thể tùy chỉnh: quốc hội_period (có thể là một cuộc bầu cử hoặc một cơ quan lập pháp) và quốc hội. Một quốc hội_period thực thể có một tham chiếu đến một quốc hội thực thể.
trong một thăm dò ý kiến nút, chúng tôi có một trường tham chiếu thực thể cho quốc hội_period các thực thể có gói là cơ quan lập pháp (lĩnh vực_lập pháp). (Đó là về các cuộc thăm dò mà các đại biểu tham gia.)
Một phần của bí danh đường dẫn cho thăm dò ý kiến các nút phải là nội dung của một url_basis lĩnh vực từ quốc hội thực thể.
tôi đã sử dụng [node:field_legislature:entity:parliament:entity:url_basis]/[node:field_legislature:entity:identifier]/poll/[node:title] như mẫu Pathauto. Nó đã từng hoạt động được một thời gian, nhưng nó đã ngừng hoạt động vì [node:field_legislature:entity:parliament:entity:url_basis] mã thông báo.
Tôi không chắc những gì tôi đã thay đổi để làm cho nó ngừng hoạt động. bên trong hook_tokens()
Tôi đã sử dụng đoạn mã sau.
if ($type == 'parliament_period' && !empty($data['parliament_period'])) {
/** @var \Drupal\pw_basic\Entity\ParliamentPeriod $parliamentPeriod */
$parliamentPeriod = $data['parliament_period'];
if ($parliament_tokens = $token_service->findWithPrefix($tokens, 'parliament')) {
$replacements += $token_service->generate('parliament', $parliament_tokens, ['parliament' => $parliamentPeriod->getParliament()], $options, $bubbleable_metadata);
}
}
Điều này cho phép tạo chuỗi để thay thế bất kỳ mã thông báo nào liên quan đến một quốc hội thực thể khi một quốc hội_period thực thể được đưa ra (chẳng hạn như trong [nút:field_legislature:entity]). hook_tokens()
được gọi một cách chính xác cho quốc hội mã thông báo thực thể, nhưng tên của mã thông báo được gửi đến hook_tokens()
Là thực thể:url_basis, không phải url_basis.
Mặt khác, [node:field_legislature:entity:parliament:url_basis] không được phép, không có thực thể phần.
Tôi có nên loại bỏ thực thể: một phần trước khi tôi gọi $token_service->tạo()
cho tất cả các mã thông báo đã xác định hoặc có cách nào tốt hơn để xâu chuỗi mã thông báo cho các thực thể tùy chỉnh không?