is_pilot会保存为0,即使已选中也是如此。
存储方法
public function store(CounsellorAvailabilityRequest $request)
{
$message = 'Availability added';
request()->merge(['counsellor_id'=>auth()->user()->id]);
$availability = CounsellorAvailability::create(request()->only('event_time', 'counsellor_id', 'is_pilot'));
return redirect()->route('counsellor_availability.list')->withFlashSuccess($message);
}
视图
<input type="checkbox" id="checkbox-checked" name="is_pilot" id="is_pilot"/>
任何想法
答案 0 :(得分:0)
您需要添加value="1"
是因为,如果您的is_pilot
列数据类型为int
,并且不允许任何string
或boolean
值。
如果没有value="1"
,则在您标记为选中时,您的复选框可能会以true
的形式发送boolean
,并且如果值为boolean
,则插入查询将与{{1 }}值存入数据库。因此,您需要在复选框中添加价值
0
答案 1 :(得分:0)
问题在这里:
<input type="checkbox" id="checkbox-checked" name="is_pilot" id="is_pilot"/>
这里缺少value
属性,在没有value
的情况下,我们在服务器端获得的值是on
或off
,这不是整数,这就是为什么始终为0
。提供value
,例如:
<input type="checkbox" id="checkbox-checked" name="is_pilot" id="is_pilot" value="1"/>
,并为每个元素提供唯一的id
,然后重试。
答案 2 :(得分:0)
html页面上的每个项目都应有一个ID。尽管此问题与您的错误无关,但应予以纠正。此外,每个复选框都分配有一个值,如果选中该复选框,则该值将传递。因此,您的checbox字段应类似于以下代码。
<input type="checkbox" name="is_pilot" id="is_pilot" value="1" />
或
<input type="checkbox" id="checkbox-checked" name="is_pilot" value="1" />