Drupal 8 drupal.orgのmenu_apiのドキュメントを読みます。サンプルガイドには、メニューリンクを作成して既存のメニューに挿入するオプションが一覧表示されています。最初にメニュー自体を作成し、あとがきメニューリンク?
私は、stackexchangeの他の回答に基づいてentitytypeマネージャーを使用しましたが、ymlの方法をお勧めします。ポインタはありますか?
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\menu_link_content\Entity\MenuLinkContent;
\Drupal::entityTypeManager()
->getStorage('menu')
->create([
'id' => 'test',
'label' => 'test menu',
'description' => 'test test',
])
->save();
以下のルートを使用してリンクを作成します。
test.home:
title: 'Home'
url: 'test.url'
menu_name: test
weight: 1
何かが発生したときにメニューを作成する必要がある機能がある場合は、コードを使用するだけで十分です。
エンティティオブジェクト\Drupal\menu\Entity\Menu::create
で静的作成メソッドを使用することを好みますが、マネージャーも問題ありません。
drupalサイトのセットアップの一環として開発環境でメニューを作成する場合は、config export/importを使用することをお勧めします。drushを使用する場合、それをデプロイメントの一部にすることができます。構成をインポートして、プロダクションが常に保存した構成を反映するようにします。