[英]SQLSTATE[HY000]: General error: 1364 Field 'photo' doesn't have a default value in laravel 5.5
[英]SQLSTATE[HY000]: General error: 1364 Field 'care' doesn't have a default value
我是 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))
这是 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'));
}
只需增加您的价值: care
您的fillable
protected $fillable = [
'care',
];
或者只是在您的迁移中使其nullable
:
$table->string('care')->nullable();
它有效吗?
$fillable 需要匹配数据库列名称而不是表单名称。
此外,某些字段需要可以为空,以防用户没有它。 经验。 地址
似乎您没有提供路径的值。 您可以提供路径列的值,也可以转到 phpMyAdmin 并将默认值设置为 NULL。 或者,您可以编辑照片表的迁移文件,并将路径列设置为默认值 null。
$table->string('path')->nullable()
然后重新运行迁移:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.