web-dev-qa-db-ja.com

ビューページをメニューリンクの親として指定するにはどうすればよいですか?

管理メニューの別のリンクの子として表示したいメニューリンクを持つモジュールがあります。親になる可能性のあるリンクは、必要に応じて[ビュー]ページへのリンクです。

これはmymodule.links.menu.ymlの内容です:

_mymodule.add_location:
  route_name: mymodule.add_form
  parent: views.branch_locations.page
  description: 'Add a foo.'
  title: Add new
  menu_name: admin
_

ViewsMenuLink::getDerivativeDefinitions() から目的の親リンクの_views.branch_locations.page_マシン名を取得しました。これは、Viewsモジュールにメニューリンクを動的に提供するクラスです。

現在の設定では、[新規追加]項目は管理メニューの[ブランチの場所]に表示されません。 _route_name_は確実に存在し、キャッシュをクリアしたりメニューを再構築したりしてもエラーはスローされません。これは、Drupalが_views.branch_locations.page_を有効な親リンクとして線に沿って受け入れていることを示唆しています。

しかし、このアイテムを指定したparentのサブアイテムとしてメニューに表示するにはどうすればよいですか? APIを使用してプログラムでリンクを作成できると思いますが、試していないので同じ問題が発生する可能性がありますが、これを構成に追加します。

Viewsモジュールがそのリンクを動的に宣言しているため、動的に作成された親を使用できるようにするためにも同じことをする必要があるのでしょうか?

2
Clive

ビューは接頭辞views_view:を含むメニューリンクIDを生成し、最初のページの表示は通常page_1のIDを持つため、親は次のようになります。

  parent: views_view:views.branch_locations.page_1

parent:が既存のメニューリンクと一致しない場合、エラーはスローされません。これは無視され、メニューリンクがメニューの最上位に表示されます。

メニューリンクがどのプロバイダーからのものであるかは関係ありません。検出されたすべてのメニューリンクは、メニューツリーテーブルで同等に扱われます。

3
4k4