laravel-5 - 1364 字段 'schedule_id' 没有默认值
问题描述
未找到 schedule_id 字段
//控制器代码
public function store(Request $request)
{
$schedule = new menu;
$days = new day;
$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;
$days->days = $request->days;
$days->timestamps = false;
$days->save();
$schedule->save();
return view('store');
}
// 模型
class menu extends Model
{
protected $table = "schedule";
protected $fillable = [
'scheduleName', 'start_time', 'end_time','sensor','s_daytime','e_daytime',
];
public function days()
{
return $this->hasMany('App\day');
}
}
解决方案
您的问题是,您没有在哪里定义您的记录是您创建它们时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');
}
提示(1):如果$timestamps
是 public 属性并且它总是 false,你最好在你的模型中设置它。
提示(2):假设您做了提示(1),您可以像这样减少行数
$schedule = menu::create($request->only(
'name', 'sensor', 'start_time', 'end_time', 's_daytime', 'e_daytime'
));
$day = $schedule->days()->create($request->only(
'days'
));
推荐阅读
- javascript - 无法使用按钮添加 DIV 元素
- python - 捕获有效的逗号分隔数字 python 正则表达式
- java - Spring Boot 中嵌入 Flyway 的许可证是什么
- c# - 从类调用函数时抛出 NullObjectReference
- c# - Entity Framework Core:可能导致循环或多个级联路径
- django - 无法在 django 模型中向 TimeField 添加时间 [
] - xamarin - 为什么在我的 ViewModel 上找不到 Binding ItemSource 属性?
- javascript - How to produce data after getting firebase firestore in Vue.JS
- html - Visual Studio Code 无法识别 HTML 文件
- java - eXist-db: username/password when connecting from Java applications with the XML:DB API