使用 laravel 上传文件时出现 SQL 默认值错误



我正在尝试使用 Laravel上传多张图像,到目前为止我已经成功了,但问题是当我尝试保存文本文件时,我收到错误。 到目前为止,我收到了很多错误,以至于我无法记住所有错误,但最新的是:

SQLSTATE[HY000]:一般错误:1364 字段"title"没有默认值(SQL:插入到posts(imageupdated_atcreated_at)值(["意大利语.jpg"],2019-05-23 18:48:22,2019-05-23 18:48:22))

我已经正确设置了 SQL,正如我所说,如果我删除图像上传它可以工作,如果我删除文本字段,它也可以工作,但如果我同时尝试两者,我就不行了。 如果我在删除必填字段时没记错的话,它也可以工作。

公共函数存储(请求$request) { 日($request);

$this->validate($request, [
'title' => 'required|min:3|max:120',
'text' => 'required',
'image' => 'required',
'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);
if($request->hasfile('image')){
foreach($request->file('image') as $image)
{
$name=$image->getClientOriginalName();
$image->move(public_path().'/images/', $name);  
$data[] = $name;  
}
} else{
redirect('/posts')->with('Error', 'no image');
}
$post->image=json_encode($data);
$post = Post::create($validatedData);
return redirect('/posts')->with('success', 'yay');
}

我也试过这个,但它返回

从空值创建默认对象

public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|min:3|max:120',
'category' => 'required|min:3|max:120',
'text' => 'required',
'image' => 'required',
'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
]);

if($request->hasfile('image'))
{
foreach($request->file('image') as $image)
{
$name=$image->getClientOriginalName();
$image->move(public_path().'/images/', $name);  
$data[] = $name;  
}
}
$post = new Post();
$post->image=json_encode($data);

$post->save();
return back()->with('success', 'Yay');

}

我想通了,嘿嘿。 只需要删除这些行:

'image' => 'required', 'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'

无论如何,谢谢。

最新更新