我在表单中有两个提交按钮,我需要检测哪一个用于触发某个操作。不幸的是,我的检查没有检测到点击了哪个提交按钮:
形式:
<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'));
,始终会返回false,即使我可以在请求包中看到它。
为什么->has
检查不起作用?
非常感谢。
答案 0 :(得分:3)
尝试为name
元素的属性button
设置相同的值,为属性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
}