mysql - 如何摆脱 Laravel 中的“没有默认值”?
问题描述
我有一个错误:
doesnt have a default value (SQL: insert into `news` (`updated_at`, `created_at`) values (2021-02-09 18:45:57, 2021-02-09 18:45:57))
我读到,当您尝试插入 NULL 值时会出现此错误,但对我来说最奇怪的部分是,尽管出现错误,它仍然将此数据保存在 DB 中(具有正确创建、更新的字段)。这是控制器中的代码:
public function addArticle(Request $request)
{
$data = $request->json()->all();
$news = new News;
$news->insert([
'title' => $data['title'],
'content' => $data['content'],
'photo' => $data['photo'],
'author' => 1,
"created_at"=> now(),
"updated_at"=> now(),
]);
$news->save();
}
解决方案
您正在尝试使用雄辩的模型“新闻”在数据库中创建一个新对象。在这一行中$news = new News;
,您实例化一个对象而不将参数传递给构造函数。之后,您尝试插入该数据。我猜异常发生在第 4 行。
尝试这样的事情
$news = new \App\Models\News([
'title' => $data['title'],
'content' => $data['content'],
'photo' => $data['photo'],
'author' => 1,
"created_at"=> now(),
"updated_at"=> now(),
]);
$news->save();
或者
$isCreated = \App\Models\News::create([
'title' => $data['title'],
'content' => $data['content'],
'photo' => $data['photo'],
'author' => 1,
"created_at"=> now(),
"updated_at"=> now(),
]);
推荐阅读
- c# - Entity Framework Core - ForeingKey 显示空值
- r - 创建一个新变量,它是一个变量以其他两个变量为条件的平均值(并维护数据集中的所有其他变量)
- xml - 如何根据条件跳过 XML 中的节点并将该值添加到具有匹配条件的节点中
- shell - 如何避免在ggsci中删除重复时出现提示
- javascript - 如何在 jQuery click 上预加载下一个背景 css 图像?
- javascript - 在 webgl 中画圆看起来像椭圆
- assembly - 在 x86 程序集中,什么时候应该使用全局变量而不是局部变量?
- docker - 没有 debian 映像可以更新/安装软件包
- r - 'x' 必须是至少二维的数组
- apk - apk中的外部链接问题