У меня есть две таблицы.
product
стол и другое product_image
Таблица. Продукт может иметь много изображений, а изображение продукта может иметь только одно изображение.
Так,
За ProductImage
модель
public function product()
{
return $this->belongsTo('App\Models\Product');
}
За product
модель
public function image()
{
return $this->hasMany('App\Models\ProductImage');
}
Я сделал связь с внешним ключом, используя миграцию.
Теперь то, что я не могу сделать, это
Я пытаюсь загрузить изображение для конкретного продукта. как я могу получить id
из product
вставить в product_id
из productImage
Таблица?
У тебя есть один ко многим отношения здесь, отношения между вашими моделями верны, у меня есть только небольшой комментарий к функции image()
в вашем product
модель, которая должна быть pluriel images()
,
Теперь для реализации вы должны сначала создать продукт и начать ассоциировать с ним изображения, так что вам не нужно беспокоиться об этом. product_id
, вы просто должны использовать associate
метод, который установит внешний ключ для дочерней модели, см. пример ниже:
//Creation of product
$product = Product::create(['Your attributes here']);
//Association of images
$product->images()->associate('Your image 1 here');
$product->images()->associate('Your image 2 here');
$product->images()->associate('Your image 3 here');
//To get the images associated with your product
$product->images();
Надеюсь это поможет.
Это не точный результат, но он поможет вам понять, как получить последний вставленный идентификатор. пример:
<?php
$product = new Product; //create the object
$product->image= 'Your_image'; // image column
$product->save(); //store data
//Getting Last inserted id
$insertedId = $product->id;
?>