使用laravel

时间:2019-05-23 19:07:14

标签: php laravel controller

我正在尝试使用laravel上传多张图片,到目前为止,我已经成功完成了,但是问题是,当我尝试保存文本 AND 时,出现错误。 到目前为止,我收到了很多错误,以至于我记不清所有错误,但最新的错误是:

  

SQLSTATE [HY000]:常规错误:1364字段“标题”没有默认值(SQL:插入postsimageupdated_at,{{1} })值([“ italian.jpg”],2019-05-23 18:48:22,2019-05-23 18:48:22))

我已经正确设置了sql,并且如我所说,如果我删除了图片上传,它会起作用,如果我删除了文本字段,它也会起作用,但是如果我同时尝试,我不会 。 如果我没有记错,那么删除必填字段也可以。

公共功能存储(请求$ request)     {               // dd($ request);

created_at

我也尝试过这个,但是它返回了

  

从空值创建默认对象

    $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');

}

2 个答案:

答案 0 :(得分:0)

您需要将文件夹放置在公共路径内: public_path('/images/'. $name)

浏览docs

祝你好运!

答案 1 :(得分:0)

我知道了,呵呵。只需删除这些行:

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

还是谢谢。