2015-12-28 5 views
2

Я создал форму, в которой я создал поля в течение нескольких дней недели, которые я сохранил в базе данных как сериализую. Когда я пытаюсь изменить форму (т.е. пытается изменить дней данные формы), что отредактированные данные не откладываются в базе данных, вместо этого он приходит к ошибке, какКак получить сериализованные данные, хранящиеся в базе данных, используя laravel при редактировании?

preg_replace(): несоответствие параметров, шаблон является строка при замене является массивом

Что я могу сделать, чтобы сохранить значения в базе данных?

вот мой код:

Контроллер:

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

    return redirect('event'); 
} 

public function edit($id) 
{ 
    // get the event 
    $event = Event::findOrFail($id); 
    $s = Category::all()->where('parent_id','=','0'); 
    $days = array(
     'Monday' => 'Monday', 
     'Tuesday' => 'Tuesday', 
     'Wednesday' => 'Wednesday', 
     'Thursday' => 'Thursday', 
     'Friday' => 'Friday', 
     'Saturday' => 'Saturday', 
     'Sunday' => 'Sunday', 
    ); 
      $daysOfWeek = unserialize(Event::find($id)->days_of_week); 
    // show the edit form and pass the event 
    return view('event.edit')->with('event', $event)->with('s',$s)->with('days',$days)->with('daysOfWeek',$daysOfWeek); 
} 

    public function update(EventRequest $request, $id) 
{ 
    $event = Event::findOrFail($id); 
    $input['days_of_week'] = serialize(Input::get('days_of_week')); 
    $event->update($request->all()); 
    return redirect('event'); 
} 

Edit.blade.php:

<div class="dropdown"> 
    <a href="#"> 
     <input type="text" name="fname" class="hida" placeholder="select number of days"/> 
     <p class="multiSel"></p> 
    </a> 
    <div class="mutliSelect"> 
     @foreach($days as $day) 
      <ul> 
       <li> 
        {!! Form::checkbox("days_of_week[]", $day, null) , $day !!} 
       </li> 
      </ul> 
     @endforeach 
    </div> 
</div> 

ответ

1

Попробуйте обновить ваш "Update Method" со следующими один,

public function update(EventRequest $request, $id) 
{ 
    $event = Event::findOrFail($id); 
    $input = Request::all(); 
    $input['days_of_week'] = serialize(Input::get('days_of_week')); 
    $event->update($input); 
    return redirect('event'); 
}