Ваша проблема в том, что нет места, где вы определяете, что ваша запись menu
является родителем day
, когда вы их создаете
Вот как вы можете сделать
$schedule = new menu;
$schedule->scheduleName = $request->name;
$schedule->sensor = $request->sensor;
$schedule->start_time = $request->start_time;
$schedule->end_time = $request->end_time;
$schedule->timestamps = false;
$schedule->s_daytime = $request->s_daytime;
$schedule->e_daytime = $request->e_daytime;
$schedule->save();
// First alternative
$day = $schedule->days()->create([
'days' => $request->days,
'timestamps' => false, // not sure if it's an attribute in your case
]);
// Second alternative
$day = new day;
$days->days = $request->days;
$days->schedule_id = $schedule->id; // notice this line
$days->timestamps = false;
$days->save();
ТакжеЯ считаю, что ваши отношения days
должны быть, но я могу ошибаться, поскольку вы установили имя базы данных на schedule
public function days()
{
// By default, Laravel will expect `menu_id`
return $this->hasMany('App\day', 'schedule_id');
}
tips (1): если $timestamps
являетсяатрибут public, и он всегда ложный, лучше установить его в своей модели.
tips (2): Предполагая, что вы выполнили советы (1), вы можете уменьшить количество строк, например:
$schedule = menu::create($request->only(
'name', 'sensor', 'start_time', 'end_time', 's_daytime', 'e_daytime'
));
$day = $schedule->days()->create($request->only(
'days'
));