我正在使用 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
方法时,没有错误,但表中的数据为空。
请帮帮我......
答案 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'];