Что означает значение, например node: {node_type}?

Я пытаюсь полностью понять маршрутизацию Drupal 8. Я понимаю основы, никаких проблем, но некоторые из более тонких деталей по-прежнему остаются загадкой.

Вот маршрут добавления узла из узла узла.

node.add:
  path: '/node/add/{node_type}'
  defaults:
    _controller: '\Drupal\node\Controller\NodeController::add'
    _title_callback: '\Drupal\node\Controller\NodeController::addPageTitle'
  requirements:
    _node_add_access: 'node:{node_type}'
  options:
    _node_operation_route: TRUE
    parameters:
      node_type:
        with_config_overrides: TRUE

Я борюсь с линией _node_add_access: 'node:{node_type}'.

Я понимаю, что делает клавиша _node_add_access. Это относится к службе с тегом applies_to: _node_add_access. Это обеспечивается классом NodeAddAccessCheck.

Что делает node:{node_type}? Никакое количество трассировки через код не ответило мне. Похоже, это уникальная ценность для какой-то цели. Связано ли это с кешированием?

У меня еще нет доступа к параметрам.

Спасибо

EDIT: Я не уверен, что это должен быть ответ, но эти apply_to требования, кажется, читаются в Drupal\Core\Access\CheckProvider::applies и значение (например, node: {node_type}), похоже, не используется вообще.

6 голосов | спросил tetranz 7 J000000Thursday16 2016, 04:50:40

2 ответа


3

Это определение не о том, что прошло для NodeAddAccessCheck, которое определяется только определением slug в пути и типом намеченного аргумента.

Вместо этого это конфигурация для его реализации. Который он фактически не использует. Так что да, это бессмысленно. См. \Drupal\Core\Entity\EntityCreateAccessCheck для проверки доступа, которая фактически использует это определение для динамического получения требуемого значения из параметров соответствия маршрута.

Я предполагаю, что это изначально использовалось и переключилось на другую реализацию, не удаляя ненужную конфигурацию.

ответил Berdir 8 J000000Friday16 2016, 00:37:39
0

{node_type} является slug и доступен как $node_type param в NodeAddAccessCheck::access()

https://www.drupal.org/node/2186285

ответил Matt West 7 J000000Thursday16 2016, 05:00:45

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132