php - 在 Nova 中上传图像导致 SQL 一般错误:1364 字段没有默认值
问题描述
鉴于 Nova 类
class Article extends Resource
{
// [...]
public function fields(Request $request)
{
return [
ID::make()
->sortable(),
Image::make('Image', 'filename')
->disk('public')
->path('articles')
->prunable(),
];
}
// [...]
}
为什么上传图片时会出现此错误?
SQLSTATE[HY000]: General error: 1364 Field 'filename' doesn't have a default value (SQL: insert into `article` (`id`, `updated_at`, `created_at`) values (143, 2021-06-07 12:35:36, 2021-06-07 12:35:36))
有些图片可以上传,有些则不能。这不是由于它们的文件类型,因为某些 .png 有效,但其他无效。
解决方案
此错误消息具有误导性。问题是文件大小:当它大于 3MB 时,它会抛出这个错误。
我建议在字段本身添加帮助消息,直到 Laravel Nova 使用更清晰的消息,如下所示:
Image::make('Image', 'filename')
->disk('public')
->path('teacher_images/source')
->prunable()
->help('Size: 3MB maximum')
推荐阅读
- android - Jetpack Compose:从 Composable 函数启动 ActivityResultContract 请求
- javascript - 寻找一种将 x 或 x[] 转换为 x[] 的单线器
- r - 向 sf 地图添加点时 ggplot 的行为不一致
- django - Django 自定义权限方法或装饰器
- javascript - Vue js 将 id 放入 v-model
- java - Java中的C++ decltype
- function - 计算 T(n) 的复杂度?
- c++ - 为什么在这个omniORB程序中这些字符串字段被忽略了,但只有当我使用我自己的构建脚本时?
- sql - 从 SELECT 查询中删除重复的行?
- javascript - 如何在反应中用特定索引号替换数组元素