SQLSTATE [HY000]:一般错误:1364字段'名称'没有默认值

时间:2018-05-09 18:42:45

标签: mysql laravel

我正在使用 mysql v5.7 laravel 5.5 。当我尝试添加产品"发生以下错误。

  

SQLSTATE [HY000]:一般错误:1364字段'名称'没有   默认值

我的产品

 public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('description');
            $table->string('size');
            $table->string('price');
            $table->string('image');
            $table->timestamps();
        });
    }

我的 ProductController 包含商店方法

public function store(Request $request)
{
    //validation
    $this->validate($request,[
        'name'=> 'required',
        'description'=>'required',
        'size'=>'required',
        'price'=>'required',
        'image'=>'image|mimes:png,jpg,jpeg|max:10000'
    ]);

    //image upload
    $image=$request->image;
    if($image){
        $imageName=$image->getClientOriginalName();
        $image->move('images',$imageName);
        $formInput['image']=$imageName;
    }

    Product::create($formInput);
    return redirect()->route('product.index');
}

当我向字段添加->nullable方法时,没有错误,但表中的数据为空。

请帮帮我......

2 个答案:

答案 0 :(得分:1)

您从未将验证过的数据定义为变量。试试这个进行验证。

$formInput = $this->validate($request,[
    'name'=> 'required',
    'description'=>'required',
    'size'=>'required',
    'price'=>'required',
    'image'=>'image|mimes:png,jpg,jpeg|max:10000'
]);

这会将变量$formInput中的所有已验证字段存储为数组。

答案 1 :(得分:0)

请检查您是否在模型的$ fillables中指定了名称字段。

受保护的$ fillables = ['name'];