2

我是 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时,它一直告诉我访问被拒绝。有谁知道这个模块有什么问题吗?

提前致谢。

4

3 回答 3

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'

发生的事情是由于缩进错误,没有正确解析路由要求(以及因此权限),因此出现拒绝访问错误。

请注意,如果您没有定义requirementsand _permission(或拼写错误),您会收到拒绝访问错误。

于 2015-06-14T00:45:17.390 回答
0

你的代码对我来说看起来不错。

我希望您尝试的第一件事是转到“管理员/人员/权限”并检查“立即访问内容”权限是否授予特定角色。

于 2014-10-22T20:46:16.213 回答
0

另外,需要注意的是路由是否有管理路径,如果有,则需要附加:

  options:
    _admin_route: TRUE
于 2020-07-01T00:30:05.297 回答