0

my_module.content: path: '/admin/my_module/{method}' defaults: _controller: '\Drupal\my_module\Controller\MyModuleController::%{method}' // 不工作

如何将 aa 参数发送到 _controller?在控制器的方法之间切换

谢谢!

4

3 回答 3

4

在路由中你有这样的东西

example.content:
  path: '/example' 
  defaults: 
    _controller: '\Drupal\example\Controller\ExampleController::content' 
  requirements: 
    _permission: 'access content' 

从 URL 中提供参数:

稍后在控制器中添加您想要接收的变量。注意:路径:'/example/{id_param}'

example.content:
  path: '/example/{id_param}' 
  defaults: 
    _controller: '\Drupal\example\Controller\ExampleController::content' 
  requirements: 
    _permission: 'access content' 

现在,在控制器中:

你会有这样的东西

function content($id_param) {
  echo($id_param);
}

这会打印您传递给 URL 的任何内容。例如 yourdrupalsite.com/example/ 1920

印刷

1920

于 2015-09-03T17:39:45.387 回答
1

将参数传递给表单:

MODULE_NAME.contactform_results:
  path: '/contactform/results/{PARAMETER}'
  defaults:
    _title: 'Contact Form Submissions'
    _form: '\Drupal\MODULE_NAME\Form\TicketSendingForm'
  requirements:
    _permission: 'access control'

然后在表单构建器功能中

  public function buildForm(array $form, FormStateInterface $form_state, $PARAMETER = null) {
      echo ($PARAMETER);
  }
于 2019-02-27T11:11:36.560 回答
0

如果您想将参数转换为实体(fx. 一个 ID),请注意该参数不能有下划线 - 或者使用驼峰式。

example.entity:
  path: '/entity/{entityName}'
  defaults: 
    _controller: '\Drupal\example\Controller\ExampleController::content' 
  requirements: 
    _permission: 'access content' 
  options:
    parameters:
      entityName:
        type: entity:entity_name
于 2021-10-09T20:11:27.297 回答