web-dev-qa-db-ja.com

* .links.menu.ymlの内部パスによるリンクが管理メニューに表示されない

公式の documentation に基づいてメニューリンクを作成する管理メニューで内部リンクを使用しようとしました。ただし、内部リンクは管理者権限を持つユーザーにのみ表示されます。

私のmy_module.links.menu.ymlテストには次のリンクを使用します。

my_module.test_link:
  title: 'TEST LINK internal'
  url: internal:/node/add
  description: 'TEST internal'
  parent: system.admin_content
  weight: 99

my_module.test_link_2:
  title: 'TEST LINK external'
  url: https://www.stackoverflow.com
  description: 'TEST external'
  parent: system.admin_content
  weight: 100

どちらのリンクも管理者に表示されますが、編集者の役割を持つユーザーには外部リンクのみが表示されます。

私は編集者ロールのすべての権限をアクティブにしますが、リンクは非表示のままです。

1
RWAM

route_nameを使用する必要があるようです。次に、権限を制御でき、編集者の役割にも内部リンクが表示されます。

1 –変更my_module.links.menu.yml URLの代わりにroute_nameを使用するには:

my_module.test_link:
  title: 'TEST LINK internal'
  route_name: my_module.test_route
  description: 'TEST internal'
  parent: system.admin_content
  weight: 99

2 –許可付きのルートをルーティングファイルに追加my_module.routing.yml

my_module.test_route:
  path: '/node/add'
  requirements:
    _permission: 'access content'
1
RWAM