在数据库中插入外键数据

时间:2015-10-08 15:21:32

标签: php mysql laravel-5.2

我有两张桌子。

一个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 std::string test = "123456789"; std::vector<int> result(test.size()); std::transform(test.begin(), test.end(), result.begin(), [](char ch) { return ch - '0'; }); 表?

2 个答案:

答案 0 :(得分:1)

你在这里有 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();

希望这有帮助。

答案 1 :(得分:-1)

这不是确切的结果,但它可以帮助您了解如何获取最后插入的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;
    ?>