具有多个ID的Laravel Eloquent模型

时间:2018-04-27 01:10:08

标签: laravel

我将有一个表格,其中包含涉及其他表格(关系)的信息。此表中的大多数信息仅包含引用相关表的ID。如果我使用"产品"作为此表的示例,对于某些列,它可能看起来像这样:

init

我试图采用这种"产品"表并将其转储到列表中。当我将其转储出来时,我需要查找这些列中的所有项目(关系)。我知道怎么做belongsToMany和hasMany,但我不知道如果我有一个"产品"我不知道怎么能用Eloquent模型一次性完成这个。模型?我应该只将产品表作为数据透视表吗?我可以使用Eloquent模型执行此操作,还是应该直接使用查询生成器?我想如果我使用withPivot它会返回额外的列,但是来自列的原始ID值。我需要从各自的表(关系)中查找值。

尝试过这样的事情:

id  |  name  |  type_id  |  price_id  |  location_id  |  sale_id
----------------------------------------------------------------
 1  |  prod1 |     1     |      1     |       2       |     4
 2  |  prod2 |     2     |      1     |       1       |     1
 3  |  prod3 |     3     |      2     |       6       |     2
 4  |  prod4 |     1     |      2     |       3       |     4

1 个答案:

答案 0 :(得分:0)

正如@BagusTesa所建议的,你应该急切地加载你的关系:

$products = Product::with(['type', 'price', 'location'])->get();

这将查询相关模型,允许您将其作为模型属性访问:

foreach ($products as $product){
    // $product->type;
    // $product->price;
    // $product->location;
}