Drupal 8 路由 - _controller 的参数
Drupal 8 Routing - Parameters to _controller
my_module.content:
路径:'/admin/my_module/{方法}'
默认值:
_controller: '\Drupal\my_module\Controller\MyModuleController::%{method}' // 不工作
如何向_controller 发送参数?在控制器的方法之间切换
谢谢!
在路由中你有这样的东西
example.content:
path: '/example'
defaults:
_controller: '\Drupal\example\Controller\ExampleController::content'
requirements:
_permission: 'access content'
从 URL 中给出参数:
Add a variable you want to receive in the controller later.
NOTICE: path: '/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
向表单传递参数:
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);
}
如果您想将参数转换为实体(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
my_module.content: 路径:'/admin/my_module/{方法}' 默认值: _controller: '\Drupal\my_module\Controller\MyModuleController::%{method}' // 不工作
如何向_controller 发送参数?在控制器的方法之间切换
谢谢!
在路由中你有这样的东西
example.content:
path: '/example'
defaults:
_controller: '\Drupal\example\Controller\ExampleController::content'
requirements:
_permission: 'access content'
从 URL 中给出参数:
Add a variable you want to receive in the controller later. NOTICE: path: '/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
向表单传递参数:
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);
}
如果您想将参数转换为实体(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