Laravel查询正在查找不带';不存在
我有在产品创建期间上传图像的功能。这是控制器中createSubmit中的函数Laravel查询正在查找不带';不存在,laravel,laravel-5,Laravel,Laravel 5,我有在产品创建期间上传图像的功能。这是控制器中createSubmit中的函数 public function productsCreateSubmit() { $product = new Product; $product->title = Input::get('title'); $product->price = Input::get('price'); if (Input::hasFile('image')) { $file
public function productsCreateSubmit()
{
$product = new Product;
$product->title = Input::get('title');
$product->price = Input::get('price');
if (Input::hasFile('image')) {
$file = Input::file('image');
$filename = str_random(20);
$file->move('uploads/', $filename . '.' . $file->getClientOriginalExtension());
$imagePath = 'uploads/' . $filename . '.' . $file->getClientOriginalExtension();
$image = Image::make($imagePath);
if ($image->width() > 200) {
$image->resize(200, null, function ($constraint) {
$constraint->aspectRatio();
});
}
if ($image->height() > 200) {
$image->resize(null, 200, function ($constraint) {
$constraint->aspectRatio();
});
}
$image->save();
} else {
$imagePath = 'default.png';
}
$product->image = $imagePath;
$product->save();
return Redirect::to('/admin/products');
}
当我单击submit时,我收到一个错误,即数据库中的列没有默认值
SQLSTATE[HY000]:一般错误:1364字段“file_id”没有默认值(SQL:insert-intoproducts
(title
,price
,image
)值(test,1,uploads/awy3cvvhlajer1gfpu.jpg))
问题是表中没有这样的列。这是产品的型号
class Product extends Eloquent
{
protected $table = 'products';
protected $primaryKey = 'product_id';
public $timestamps = false;
}
laravel如何决定插入/查找此字段?如果数据库表中有
file\u id
列,请转到phpmyadmin中的表结构,然后单击file\u id列前面的change
,然后将属性默认值设置为NULL
,并勾选NULL复选标记。
点击保存
重新运行项目 这与laravel无关,您的数据库中有一个没有默认值的file\u id
字段,可能您也有一个files
表
保存laravel时只设置了三个字段:title
、price
和image
,但不设置file\u id
,而且由于file\u id
没有默认值,mysql不知道填充什么并返回错误
您可以将文件\u id
更改为可空,并将其默认值设置为空。您可以为产品表添加迁移文件吗?我没有此迁移。它是直接在phpmysql中创建的。即使在控制器中不使用该列,您确定数据库中也没有该列吗?我有它,但在ControllerDoe的save()语句中的任何地方都没有使用它。不管您是否使用它,Eloquent都是。为该列输入默认值,该函数将工作。