Я новичок в Drupal 8 и в настоящее время пытаюсь создать модуль для него. Тем не менее, часы, проведенные, я до сих пор не могу заставить его работать.
Ниже приведены два файла:
#testmodule.routing.yml
testmodule.testmodule:
path: '/testmodule'
defaults:
_title: 'Index'
_content:
'\Drupal\testmodule\Controller\TestModuleController::testmodule'
requirements:
_permission: 'access content right away'#testmodule.permissions.yml
access content right away:
title: 'Access content'
description: 'Access content right away.'
Когда я получаю доступ /testmodule
, он продолжает говорить мне Доступ запрещен. Кто-нибудь знает, что не так с модулем?
Заранее спасибо.
Существует проблема с отступом файла routing.yml. Отступы в файлах yml очень важны. Ниже правильно указан файл routing.yml:
#testmodule.routing.yml
testmodule.testmodule:
path: '/testmodule'
defaults:
_title: 'Index'
_content: '\Drupal\testmodule\Controller\TestModuleController::testmodule'
requirements:
_permission: 'access content right away'
Происходит то, что из-за ошибки отступа требования к маршруту (и, следовательно, разрешение) не анализируются должным образом, следовательно, ошибка отказа в доступе.
Обратите внимание, что если вы не определите requirements
а также _permission
(или вы их неправильно написали), вы получаете сообщение об ошибке отказа в доступе.
Ваш код выглядит хорошо для меня.
Первое, что я хотел бы, чтобы вы попробовали, — это зайти в «admin / people / permissions» и проверить, предоставлено ли «право доступа к контенту сразу» конкретной роли или нет.