2015-12-21 64 views
0

我已经创建了一个表单,其中我有一个要选择多个天的列表。但那些日子并没有存储在数据库中。laravel中的数据没有存储在数据库中的多个复选框中

这里是我的控制器:

public function store(EventRequest $request) 
{ 
    $input = Request::all(); 
    $input['days_of_week'] = Input::get('days_of_week'); 
    Event::create($input); 
    return redirect('event'); 
} 

,我的看法是:

@foreach($days as $day) 
    <ul> 
     <li> 
      {!! Form::checkbox("days_of_week[]", $day, null) , $day !!} 
     </li> 
    </ul> 
    @endforeach 

,当我回到Input::get('days_of_week');它显示的复选框我选择。

如何存储复选框值以及表单中存在的所有其他字段。

+0

我使用laravel,该职位不适合我 – Shweta

+0

有用我想存储复选框值,用户检查不选中入住盒值 – Shweta

+0

尝试检查'dd($ input ['days_of_week'])'你在内部收到了什么,并且如同简单的数组 –

回答

0

就像Jerodev说的那样,你不能将数组存储到数据库中。你可以做的是序列化数组并存储它。然后,当检索值时,可以反序列化它。

public function store(EventRequest $request) 
{ 
    $input = Request::all(); 
    $input['days_of_week'] = serialize(Input::get('days_of_week')); 
    Event::create($input); 
    return redirect('event'); 
} 

,你可以retrive像这样

$daysOfWeek = unserialize(Event::find(1)->days_of_week); 
+0

什么应该是该字段的数据类型?我采取了Varchar。 – Shweta

+0

yes varchar很好 –

+0

那么这也行不通,没有数据存储 – Shweta

0

您不能将数组添加到数据库的值中,您将不得不在分隔的字段中拆分它。我不知道你的数据库是什么样子,但这里是一个关于如何做到这一点的例子。

foreach (Input::get('days_of_week') as $key => $value) { 
    $input['day_of_week_' . $key] = $value; 
} 
相关问题