如何检测使用哪个按钮提交表单?

How to detect which button was used to submit the form?

我似乎无法在 cakephp4 中检测到按钮按下。在 cake3 中很容易。

在表格中我有:

echo $this->Form->button('View Data', [
    'name' => 'viewdata',
    'type' => 'submit',
    'class' => 'btn btn-primary'
]); 

在控制器中我有:

if ($this->request->is('post') ) {
    .... 
    debug($this->request->getDdata());
    if (!empty($this->request->getData('viewdata'))) {

我点击按钮,我看到 'viewdata'='',所以它检测到按钮已被点击,但它的值是 = null?而且我无法调用 viewdata.

的按钮按下功能

https://book.cakephp.org/4/en/views/helpers/form.html#creating-buttons-and-submit-elements

该值不是null,它是一个空字符串。因此,例如,您可以对该确切值进行严格检查,即:

if ($this->request->getData('viewdata') === '') {
    // view data submit button was used
}

或者通过与 null:

比较来检查密钥是否存在
if ($this->request->getData('viewdata') !== null) {
    // view data submit button was used
}