Laravel 请求外观未检测到多个提交按钮

Laravel Request facade isn't detecting multiple submit buttons

我在一个表单中有两个提交按钮,我需要检测哪一个用于触发特定操作。不幸的是,我的检查没有检测到点击了哪个提交按钮:

形式:

<button type="submit" name="complete">
     <span class="btn-label">
         <i class="glyphicon glyphicon-save"></i>
     </span> Submit Audit
</button>

<button type="submit" name="pending">
    <span class="btn-label">
        <i class="glyphicon glyphicon-save"></i>
    </span> Save Audit
</button>

控制器:

public function updateAudit(Request $request, $id)
{
    ....

    if ($request->has('complete')) {
        $auditCompleteCheck->completed = 1;
        $auditCompleteCheck->save();
    }

}

如果我输出 $request,我可以看到 complete 提交按钮为:"complete" => "",与待处理类似:"pending" => "".

但是,如果我 dd($request->has('complete'));,它 总是 returns 错误,即使我可以在请求包中看到它。

为什么 ->has 检查不起作用?

非常感谢。

尝试为两个 button 元素的属性 name 设置相同的值,并为属性 value.

设置不同的值

HTML 部分:

<button type="submit" name="submit_audit" value="complete">
     <span class="btn-label">
         <i class="glyphicon glyphicon-save"></i>
     </span> Submit Audit
</button>

<button type="submit" name="submit_audit" value="pending">
    <span class="btn-label">
        <i class="glyphicon glyphicon-save"></i>
    </span> Save Audit
</button>

现在在您的控制器中,您可以执行以下操作:

if ($request->submit_audit === 'complete') {
    // Do something
}

if ($request->submit_audit === 'pending') {
    // Do something else
}