2016-09-23 6 views
0

Я создаю код, с помощью которого я могу реплицировать несколько строк таблицы и связанных с ней таблиц.значения, измененные eloquent create() в laravel 5.2

Я могу реплицировать родительский стол успешно, но при воспроизведении содержимого дочерней таблицы он изменяет значения, которые я не могу понять.

мой код контроллера

public function copyshowtime($cinema_id,$show_date) 
{ 
    $date=new Carbon($show_date); 
    $current_show_date=$date->format('Y-m-d'); 
    $next_show_date=$date->addDay()->format('Y-m-d'); 

    $movieshowtime=Movies_showtimes::with('showdata')->where([['cinema_id','=',$cinema_id],['show_date','=',$current_show_date]])->get(); 

    foreach ($movieshowtime as $item) 
    { 
     $item->show_date=$next_show_date; 
     $item->show_id=NULL; 
     $newshowtime=$item->replicate(); 
     $newshowtime->push(); 


     foreach ($item->showdata as $sd) 
     { 

      $newshowdata = array(
            'showdata_id' => NULL, 
            'show_id'=>$newshowtime->id, 
            'category_id'=>$sd->category_id, 
            'showdata_category'=>$sd->showdata_category, 
            'showdata_rate'=>$sd->showdata_rate 

           ); 

      // print_r($newshowdata); 
      Movies_showdata::create($newshowdata); 
     } 
    } 
} 

Когда я печатая полный спектр его показ соответствующих данных, которые я пытаюсь вставить, проверьте ниже

enter image description here

Но после того, как вставить его в таблицу Я вижу эти данные в таблице, значения show_id и showdata_rate получают нулевое значение, а другие столбцы получают правильные введенные данные.

enter image description here

Я не могу понять эту проблему, как я нигде изменения данных до нуля, прежде чем вставить его в таблицу.

ответ

0

Убедитесь show_id и showdata_rate являются заполняемых в вашем Movies_showdata модели:

class Movies_showdata extends Model { 
    protected $fillable = ['show_id', 'showdata_rate', ...other fillable fields ]; 
} 
+0

великий человек, я совсем забыл написать эти столбцы в заполняемых, его теперь работает отлично. Спасибо чувак – dollar

Смежные вопросы