Image Laravel用户后期图像

Image Laravel用户后期图像,image,laravel,post,upload,Image,Laravel,Post,Upload,这是在用户控制器中 public function store(Request $request, User $user) { $this->validate($request, [ 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', 'body' => 'required' ]); if(

这是在用户控制器中

  public function store(Request $request, User $user)
    {
        $this->validate($request, [
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            'body' => 'required'
        ]);


        if( $request->hasFile('image') ) {
            $image = $request->file('image');
            $filename = time() . '.' . $image->getClientOriginalExtension();

            Image::make($image)->resize(600, 600)->save( public_path('uploads/images/' . $filename ) );
        }

        $post = Post::get();
        $post->image = $filename;
        $post->save();

         Session::flash( 'sucess', 'Post published.' );

        auth()->user()->publish(
            new Post(request(['body']))
        );

        return redirect('/');
    }
我无法发布看到某些可选错误的图像SQLSTATE[HY000]:一般错误:

1364字段“image”没有默认值SQL:insert into 发布正文,更新日期,创建日期,日期:2018-02-21 09:42:492018-02-21 09:42:49


由于该字段不可为空,因此应将代码更改为:

$post->image = $filename ?? '';
或使相关迁移文件中的图像字段为空:

$table->string('image')->nullable();
此外,与get不同的是:

您只需创建一个新的Post实例:

$post = new Post;

这是因为$image为null,并且它在DB中的列不可为null,请将其设为null

$table->string('image')->nullable();
或者不传递null

$post->image = $filename ?? '';//this is php 7 syntax


dd$filename可能为空;你能显示你的发布方法吗?公共函数publishPost$post{$this->posts->save$post;}仍然有相同的错误
$post->image = $filename ?? '';//this is php 7 syntax
 $post->image = isset($filename) ? $filename :' ';