这就是我的图片和产品型号的样子。当我尝试保存图像时,我收到错误
常规错误:1364字段' product_id'没有默认值(SQL:插入product_images(path,updated_at,created_at)值
提交了图片路径,但未提交产品ID。此外,当我$product->images()->create(['product_id',=>$product'url_path' => $file_name]);
时,我收到错误但是,数据被保存在数据库中(我知道这显然不是正确的方式)
为什么会这样?
图片
protected $fillable = ['product_id', 'url_path'];
public function products()
{
return $this->belongsTo(Product::class);
}
产品
public function images()
{
return $this->belongsToMany(Image::class);
}
控制器
$product = Product::findorfail($id);
if ( $request->hasFile('image'))
{
$path = $request->file('image')->store('public/pics');
$file_name = $request->file('image')->hashName();
$product->saveProduct($request);
$product->images()->create(['url_path' => $file_name]);
答案 0 :(得分:1)
由于您在图片表中使用hasOwnProperty(name)
,因此关系必须为product_id
:
hasMany
答案 1 :(得分:0)
打开数据库并检查图像表。
product_id field is null select.
立即尝试
答案 2 :(得分:0)
我已经遇到过这种错误,但是通过将有问题的字段置于可空的状态我解决了这个问题。查看您的迁移并将产品放入' product_id'在可空的
$table->integer("product_id")->nullable()
发生此错误是因为您尝试使用必须填充时采用空值的字段保存数据
我希望在相反的情况下帮助你告诉我们