Drupal 8:自定义权限无法正常工作

时间:2014-10-17 02:59:56

标签: php drupal drupal-modules drupal-8

我是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时,它会一直告诉我拒绝访问。任何人都知道模块有什么问题吗?

提前致谢。

3 个答案:

答案 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