在Drupal 8的控制器中编辑自定义模块的配置变量,可以通过以下步骤实现:
config/install
的文件夹,并在该文件夹中创建一个名为mymodule.settings.yml
的配置文件。该文件将用于存储模块的配置变量。mymodule.settings.yml
文件中,定义需要的配置变量。例如,假设我们要定义一个名为mymodule_api_key
的配置变量,可以按照以下格式进行定义:mymodule_api_key: 'default_value'
src/Form
的文件夹,并在该文件夹中创建一个名为MyModuleSettingsForm.php
的表单类文件。该表单类将用于编辑配置变量。namespace Drupal\mymodule\Form;
use Drupal\Core\Form\ConfigFormBase;
use Drupal\Core\Form\FormStateInterface;
class MyModuleSettingsForm extends ConfigFormBase {
/**
* {@inheritdoc}
*/
protected function getEditableConfigNames() {
return ['mymodule.settings'];
}
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'mymodule_settings_form';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$config = $this->config('mymodule.settings');
$form['mymodule_api_key'] = [
'#type' => 'textfield',
'#title' => $this->t('API Key'),
'#default_value' => $config->get('mymodule_api_key'),
];
return parent::buildForm($form, $form_state);
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$config = $this->config('mymodule.settings');
$config->set('mymodule_api_key', $form_state->getValue('mymodule_api_key'));
$config->save();
parent::submitForm($form, $form_state);
}
}
mymodule.routing.yml
文件中,注册配置表单的路由。mymodule.settings_form:
path: '/admin/config/mymodule/settings'
defaults:
_form: '\Drupal\mymodule\Form\MyModuleSettingsForm'
_title: 'MyModule Settings'
requirements:
_permission: 'administer site configuration'
/admin/config/mymodule/settings
路径,即可进入自定义模块的配置表单页面。在该页面上,可以编辑并保存配置变量。以上是在Drupal 8的控制器中编辑自定义模块的配置变量的步骤。通过这种方式,可以方便地管理和修改模块的配置,以满足不同场景下的需求。
腾讯云相关产品推荐:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和项目要求进行评估。
领取专属 10元无门槛券
手把手带您无忧上云