我在我的表单中创建了一个天数组,当我选中时将其保存到数据库列“天”#39;在这里他们被分为','作为字符串中的数组。然后,我希望以后可以使用这些值进行查询。
我遇到的问题是,当我使用选中的值保存表单时,它们会进入数组,我可以看到数组但是当我去编辑表单时,所有复选框都会被检查如下:
在我的控制器存储和更新方法中,我有:
public function store(Offer $offer)
{
$data = Input::except('image','thumbnail','featured','days');
$validation = Validator::make($data, Offer::$rules);
$days = Input::get('days');
if ($validation->fails()) {
return redirect('offers')->with('message', $validation->errors());
} else {
$d = implode(',', $days);
$data['days'] = $d;
Offer::create( $data );
return redirect('offers')->with('message', 'Offer added!');
}
}
然后在我的编辑表单视图中我得到了这个:
<?php
$days = ['Monday' => 'monday','Tuesday' => 'tuesday','Wednesday' => 'wednesday', 'Thursday' => 'thursday', 'Friday' => 'friday', 'Saturday' => 'saturday', 'Sunday' => 'sunday'];
?>
<div class="form-group" id="featured-form-area">
<h2>Days</h2>
@foreach($days as $day)
{!! Form::label('day', $day) !!}
{!! Form::checkbox('days[]', $day, null, ['class' => 'form-field']) !!}
@endforeach
</div>
谁能告诉我为什么会这样呢?由于某种原因,复选框都被检查了。