存储复选框值laravel

时间:2018-11-13 10:39:21

标签: laravel

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"/>

任何想法

3 个答案:

答案 0 :(得分:0)

您需要添加value="1"是因为,如果您的is_pilot列数据类型为int,并且不允许任何stringboolean值。

如果没有value="1",则在您标记为选中时,您的复选框可能会以true的形式发送boolean,并且如果值为boolean,则插入查询将与{{1 }}值存入数据库。因此,您需要在复选框中添加价值

0

答案 1 :(得分:0)

问题在这里:

<input type="checkbox" id="checkbox-checked" name="is_pilot" id="is_pilot"/>

这里缺少value属性,在没有value的情况下,我们在服务器端获得的值是onoff,这不是整数,这就是为什么始终为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" />