Drupal 8 Routing - _controller的参数

时间:2015-05-26 20:25:58

标签: drupal controller routing drupal-8

my_module.content: 路径:'/ admin / my_module / {method}' 默认值: _controller:'\ Drupal \ my_module \ Controller \ MyModuleController ::%{method}'//不工作

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

谢谢!

2 个答案:

答案 0 :(得分:3)

在路由中你有类似的东西

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

从网址提供参数:

  

稍后在控制器中添加要接收的变量。   注意:路径:'/ 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

答案 1 :(得分:0)

将参数传递给表单:

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);
  }