カスタムモジュールを作成し、メニューを作成するためのymlファイルを作成しました
system.menu.custom_menu.yml
id: custom_menu
label: 'Custom menu'
description: 'Custom menu.'
langcode: en
locked: true
dependencies:
- mymod
モジュールをインストールすると、カスタムメニューが作成されます。しかし、モジュールをアンインストールして再度インストールしようとすると、次の例外が発生します
exception 'Drupal\Core\Config\PreExistingConfigException' with message 'Configuration objects (system.menu.custom_menu) provided by mymod already exist in active configuration' in
/var/www/drupal8/core/lib/Drupal/Core/Config/PreExistingConfigException.php:70
私は何を間違っていますか?モジュールをアンインストールするときに、構成から構成(system.menu.custom_menu)を削除する方法はありますか?
最も簡単な方法は、設定がモジュールに依存していることを確認することです。
dependencies:
module:
- yourmodule
enforced:
module:
- yourmodule
次に、Drupalはその構成を自動的に削除し、UIで削除されることを警告します。
これは新しいインストールでのみ機能し、既存のインストールを修正しないことに注意してください。
別の方法は、config/installではなくconfig/optionalに構成を配置することです。構成がまだ存在せず、依存関係が満たされている場合にのみ作成されます。