我对laravel
有点陌生,我正在开发一个laravel
字段的checkbox
应用程序,该字段的boolean
值应为{{ 1}},当用户选中1
时,checkbox
,而未选中0
时。
我想将布尔值检索为1或0并保存在数据库中。
请协助?
查看
checkbox
控制器
<form method="POST" action="{{ route('b2c.getplans') }}" id="travel_form" accept-charset="UTF-8">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="check-now {{ $errors->has('spouse') ? ' has-error' : '' }}">
<h1 class="cover-travel">I am travelling with</h1>
<label class="spouse-me">
<h1 class="pumba">Spouse</h1>
<input id="spouse" type="checkbox" name="spouse">
<span class="checkmark" name="spouse"></span>
</label>
@if ($errors->has('spouse'))
<span class="help-block">
<strong>{{ $errors->first('spouse') }}</strong>
</span>
@endif
</div>
<button type="submit" class="form-b3c"> Get Plans</button>
</form>
答案 0 :(得分:0)
您不必验证复选框的值。因为如果它的{ "data": "YOURIDKEYCOLUMN",
"render": function (data) {
return "<a href='/YOUREDITINGURL/Edit/"+data+"'>Edit</a>"
}
会发送checked
的值,而如果不是on
则不会发送任何东西。
因此,您所需要做的就是获取是否选中该复选框,您可以按照以下步骤进行操作。
检索复选框的布尔值,
控制器
checked
答案 1 :(得分:0)
要以布尔值从请求中获取复选框值:
$yourModel->with_spouse = (bool) $request->spouse;
如果选中此复选框,则将其值(默认为on
)传递给请求,并将非空字符串强制转换为布尔值将为您提供true
。如果未选中复选框,则根本不会传递spouse
键来进行请求,因此$request->spouse
将返回null
。将null
转换为布尔值将导致false
(在PHP true
中,int是1
,而false
是int 0
,这正是您所需要的想要)。
答案 2 :(得分:0)
第一种方法是从前端发送正确的值
您可以在复选框的change事件的前端添加jquery或javascript:
<input type="checkbox" name="checkbox" id="myCheckbox" />
<script>
$(document).on('change','#myCheckbox',function(){
if($(this).is(':checked')){
$('#myCheckbox').val(1);
}else{
$('#myCheckbox').val(0);
}
});
</script>
在您的后端,现在您可以检查:
$yourVariable=$request->input('checkbox');
第二种方法是仅在后端检查
如果选中checkbox value=on
,您将得到
if($request->input('checkbox')=='on'){
$yourVariable=1;
}else{
$yourVariable=0;
}
您也可以使用三元条件,例如:
$yourVariable = $request->input('checkbox')=='on' ? 1:0;