Вставить данные внешнего ключа в базу данных

У меня есть две таблицы.

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 Таблица?

2

Решение

У тебя есть один ко многим отношения здесь, отношения между вашими моделями верны, у меня есть только небольшой комментарий к функции 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();

Надеюсь это поможет.

1

Другие решения

Это не точный результат, но он поможет вам понять, как получить последний вставленный идентификатор. пример:

    <?php
$product = new Product; //create the object

$product->image= 'Your_image'; // image column

$product->save(); //store data

//Getting Last inserted id

$insertedId = $product->id;
?>
-1

По вопросам рекламы [email protected]