管理メニューの別のリンクの子として表示したいメニューリンクを持つモジュールがあります。親になる可能性のあるリンクは、必要に応じて[ビュー]ページへのリンクです。
これは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モジュールがそのリンクを動的に宣言しているため、動的に作成された親を使用できるようにするためにも同じことをする必要があるのでしょうか?
ビューは接頭辞views_view:
を含むメニューリンクIDを生成し、最初のページの表示は通常page_1
のIDを持つため、親は次のようになります。
parent: views_view:views.branch_locations.page_1
parent:
が既存のメニューリンクと一致しない場合、エラーはスローされません。これは無視され、メニューリンクがメニューの最上位に表示されます。
メニューリンクがどのプロバイダーからのものであるかは関係ありません。検出されたすべてのメニューリンクは、メニューツリーテーブルで同等に扱われます。