Tôi đã thiết lập một trang tùy chỉnh trong hệ thống của mình, trang này đang mong đợi 2 tham số sẽ được sử dụng để tạo một phần nội dung trên trang đó, tôi có thể truy xuất thông tin từ trang của mình, nhưng tôi không biết đâu là trang tốt nhất phương pháp trả lại quyền truy cập bị từ chối khi tiêu chí của tôi không thành công
tôi đã tìm thấy trang này cho biết cách bạn có thể thiết lập bộ điều khiển truy cập tùy chỉnh, nhưng ví dụ này đang chuyển thực thể người dùng, trong khi điều tôi quan tâm hơn là 'sên' của URL mà họ đã truy cập
định tuyến.yml
my_module.user_subscribe:
đường dẫn: /my-module/subscribe/{entity_type}/{entity_id}
mặc định:
_controller: \Drupal\my-module\Controller\SubscriptionPages::subscribe
_title: Đăng ký email thành công
loại: nút
thực thể: 1
yêu cầu:
_permission: 'truy cập nội dung'
_entity_check: 'TRUE'
Dịch vụ.yml
dịch vụ:
my_module.entity_check:
lớp: Drupal\my-module\Access\EntityCheck
thẻ:
- { name: access_check, apply_to: _entity_check }
Sau đó, tôi có của tôi src/Trình điều khiển/Trang đăng ký
tập tin, và một cho src/Truy cập/Kiểm tra thực thể
v.v., tất cả phần đó dường như đang hoạt động, tôi có thể thực thi mã theo cách thủ công trong EntityCheck của mình để trả lại quyền truy cập bị từ chối và đúng như vậy, nhưng điều tôi muốn biết là làm cách nào để kéo {entity_type}
và {ID phap nhân}
từ URL họ đã truy cập để tôi có thể kiểm tra xem họ có đang cố truy cập vào thứ mà họ không nên truy cập không
ví dụ
mywebsite.com/my-module/subscribe/node/15 - sẽ ổn thôi
mywebsite.com/my-module/subscribe/foo/bar - sẽ trả lại quyền truy cập bị từ chối, vì tôi muốn chạy kiểm tra bên trong mã EntityCheck của mình
Bên trong liên kết ở trên nó có đối số: ['@current_user']
bên trong tệp services.yml, có một URL tương đương cho URL hiện tại hay những URL mà tôi có thể truy xuất từng mục một cách cụ thể hơn không?