laravel SQLSTATE[HY000]:一般错误:1364 字段“care”没有默认值
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/54133994/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
SQLSTATE[HY000]: General error: 1364 Field 'care' doesn't have a default value
提问by pro
I'm new to Laravel and trying to add products from admin panel to index page, firstly it was working fine but now its showing me error SQLSTATE[HY000]: General error: 1364 Field 'care' doesn't have a default value
, is there any solution of this problem?
我是 Laravel 的新手,并试图将产品从管理面板添加到索引页面,首先它运行良好,但现在显示错误SQLSTATE[HY000]: General error: 1364 Field 'care' doesn't have a default value
,是否有解决此问题的方法?
SQLSTATE[HY000]: General error: 1364 Field 'care' doesn't have a
default value (SQL: insert into `products` (`product_name`,
`product_code`, `product_color`, `description`, `price`, `image`,
`updated_at`, `created_at`) values (Filter, ASD111, CLR, ASDF, 1000,
85525.png, 2019-01-10 17:18:33, 2019-01-10 17:18:33))
This is ProductsController:
这是 ProductsController:
public function addProduct(Request $request){
if($request->isMethod('post')){
$data = $request->all();
//echo "<pre>"; print_r($data); die;
$product = new Product;
$product->product_name = $data['product_name'];
$product->product_code = $data['product_code'];
$product->product_color = $data['product_color'];
if(!empty($data['description'])){
$product->description = $data['description'];
}else{
$product->description = '';
}
$product->price = $data['price'];
// Upload Image
if($request->hasFile('image')){
$image_tmp = Input::file('image');
if($image_tmp->isValid()){
$extension = $image_tmp->getClientOriginalExtension();
$filename = rand(111,99999).'.'.$extension;
$large_image_path =
'images/backend_images/products/large/'.$filename;
$medium_image_path =
'images/backend_images/products/medium/'.$filename;
$small_image_path =
'images/backend_images/products/small/'.$filename;
// Resize Images
Image::make($image_tmp)->save($large_image_path);
Image::make($image_tmp)->resize(600,600)->save($medium_image_path);
Image::make($image_tmp)->resize(300,300)->save($small_image_path);
// Store image name in products table
$product->image = $filename;
}
}
$product->save();
return redirect('/admin/view-products')-
>with('flash_message_success','Product has been added successfully!');
}
return view('admin.products.add_product');
}
public function editProduct(Request $request, $id=null){
if($request->isMethod('post')){
$data = $request->all();
//echo "<pre>"; print_r($data); die;
if($request->hasFile('image')){
$image_tmp = Input::file('image');
if($image_tmp->isValid()){
$extension = $image_tmp->getClientOriginalExtension();
$filename = rand(111,99999).'.'.$extension;
$large_image_path = 'images/backend_images/products/large/'.$filename;
$medium_image_path = 'images/backend_images/products/medium/'.$filename;
$small_image_path = 'images/backend_images/products/small/'.$filename;
// Resize Images
Image::make($image_tmp)->save($large_image_path);
Image::make($image_tmp)->resize(600,600)->save($medium_image_path);
Image::make($image_tmp)->resize(300,300)->save($small_image_path);
// Store image name in products table
$product->image = $filename;
}
}
if(empty($data['description'])){
$data['description'] = '';
}
Product::where(['id'=>$id])->update(['product_name'=>$data['product_name'],'product_code'=>$data['product_code'],'product_color'=>$data['product_color'],'description'=>$data['description'],'price'=>$data['price'],'image'=>$fileName]);
return redirect()->back()->with('flash_message_success','Product updated successfully!');
}
//Get product details
$productDetails = Product::where(['id'=>$id])->first();
return view('admin.products.edit_product')->with(compact('productDetails'));
}
回答by Saif Manwill
Just add your value: care
to your fillable
只需添加您的价值:care
到您的fillable
protected $fillable = [
'care',
];
Or just make it nullable
in your migration:
或者只是nullable
在您的迁移中使用它:
$table->string('care')->nullable();
Does it work?
它有效吗?
回答by Cc See
$fillable needs to match the database column names not the form names.
$fillable 需要匹配数据库列名称而不是表单名称。
Also, some fields need to be nullable incase the user does not have it. Exp. address
此外,某些字段需要可以为空,以防用户没有它。经验。地址