Laravel如何测试控制器中是否选中了复选框 [英] Laravel how to test if a checkbox is checked in a controller
本文介绍了Laravel如何测试控制器中是否选中了复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图获取是否选中了以下复选框:
I tried to get if checkbox is checked with:
我认为:
<form data-toggle="validator" data-disable="false" role="form" action="/admin/role/add" method="post">
<div class="checkbox checkbox-success">
<input name="test" id="test" type="checkbox" value="test">
<label for="test" style="padding-left: 15px!important;">test</label>
</div>
</form>
<form data-toggle="validator" data-disable="false" role="form" action="/admin/role/add" method="post">
{{ csrf_field() }}
<div class="form-group pull-right">
<button type="submit" class="btn btn-danger">Submit</button>
</div>
</form>
在我的控制器中:
public function createRole(Request $request)
{
if($request->has('test')) {
new \App\Debug\Firephp('test', ['test' => true]);
}
}
在我的 web.php
中:
Route::post('/admin/role/add', 'AdminController@createRole')
但由于某些原因无法正常工作.
but doesn't work for some reason.
我该怎么办?
感谢您的答复.
这是我的表单构建不佳.
It was my form that was poorly build.
推荐答案
我相信您真正的问题是您有两种不同的形式.您的复选框采用一种形式,您的提交按钮采用另一种形式.我相信它们都必须采用相同的形式.否则,无论状态如何,您的复选框状态都不会返回.
I believe your real problem is that you have two separate forms. Your checkbox is in one form, your submit button is in a second form. I believe they both need to be in the same form. Otherwise your checkbox state is never returned, regardless of it's state.
在您看来,尝试以此替换您提供的表单标记:
In your view, try replacing the form markup you provided with this:
<form data-toggle="validator" data-disable="false" role="form" action="/admin/role/add" method="post">
<div class="checkbox checkbox-success">
<input name="test" id="test" type="checkbox" value="test">
<label for="test" style="padding-left: 15px!important;">test</label>
</div>
{{ csrf_field() }}
<div class="form-group pull-right">
<button type="submit" class="btn btn-danger">Submit</button>
</div>
</form>
这篇关于Laravel如何测试控制器中是否选中了复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文