在数据库中插入外键数据

Insert foreign key data in database

我有两个table。

一个product table和另一个product_image table。一个产品可以有很多张图片,一个产品的图片只能有一张图片。

所以,

对于ProductImage型号

public function product()
    {
        return $this->belongsTo('App\Models\Product');
    }

对于product型号

public function image()
{
    return $this->hasMany('App\Models\ProductImage');
}

我已经使用迁移建立了外键关系。

现在我做不到的是

我正在尝试上传特定产品的图片。我怎样才能让 productid 插入到 productImage table 的 product_id 中?

这不是准确的结果,但可以帮助您了解如何获取最后插入的 ID。示例:

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

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

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

    //Getting Last inserted id

    $insertedId = $product->id;
    ?>

你这里有 one-to-many 关系,你的模型之间的关系是真实的,我只是对你的函数 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();

希望对您有所帮助。