我是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
时,它会一直告诉我拒绝访问。任何人都知道模块有什么问题吗?
提前致谢。
答案 0 :(得分:2)
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
(或拼错它们),则会收到拒绝访问错误。
答案 1 :(得分:0)
您的代码对我来说很好。
我希望您尝试的第一件事是转到“admin / people / permissions”并检查是否授予特定角色“立即访问内容”权限。
答案 2 :(得分:0)
另外,要注意的是,该路由是否具有管理路径,如果需要,则需要附加:
options:
_admin_route: TRUE