如何插入Laravel?

时间:2016-10-23 11:32:35

标签: laravel laravel-5 laravel-5.3

在将数据插入表overflow: auto;后,我有输出对象$product

Product

在模型$product = Product::create($data); 中,我有:

Product

我尝试将图片添加到表public function images() { return $this->hasMany("App\ProductImage"); }

product_images

关系beetwen表是$product->images()->save(new ProductImage(UploadFiles::$files));

所以,插入后我收到消息:

product.id = product_images

1 个答案:

答案 0 :(得分:2)

好的,首先让我们来处理保存一张图片:

假设您有product_imagesidimageproduct_id,您可以附上如下图片:

$image = new ProductImage(['image' => 'myImage.jpg']);
$product->images()->save($image);

现在看起来你有一个数组,所以你不能直接保存它,你需要把它放在for循环中。我不知道你UploadFiles::$files的格式,但我会假设它只是一个要保存的文件名列表:

$files = UploadFiles::$files;

foreach($files as $file){
  $image = new ProductImage(['image' => $file]);
  $product->images()->save($image);
}

或者,您可以将整个事物创建为数组并使用saveMany,这会更好:

$files = UploadFiles::$files;
$productImages = [];

foreach($files as $image){
  $productImages[] = new ProductImage(['image' => $image]);
}

$product->images()->saveMany($productImages);