如何在 Laravel 中基于一组自定义键建立关系?

问题描述 投票:0回答:1

我有一个名为

Tour
的主模型,还有另一个模型
OptionPrices
。根据这个条件我该如何建立关系

option_prices
桌子

+-------+---------+----------+
| id    | channel | optionid |
+-------+---------+----------+
| 12531 |    9278 |    10003 |
| 12533 |    5408 |    10003 |
| 12530 |    5501 |    10003 |
| 12529 |    3862 |    10003 |
| 12535 |    9225 |    10003 |
| 12536 |    6640 |    10003 |
| 12534 |    6111 |    10003 |
| 12532 |    5235 |    10003 |
| 12492 |    3862 |    10002 |
| 12491 |    6640 |    10002 |
+-------+---------+----------+

一次旅行可以有很多

option_prices
,但它不使用
id
,它基于
optionid
列,但必须按其分组,这样它就会成为一个
optionid

我计划使用数据透视表,但问题是我认为它会附加多个

option_prices
,当我获得
OptionPrices
关系时,它会导致多重查询?

对于这个问题最好的方法是什么?预先感谢。

php mysql laravel database eloquent
1个回答
0
投票

如果你想使用其他外键,你可以在你的模型中这样做

游览型号:

public function options(): HasMany
{
    return $this->hasMany(OptionPrice::class, 'optionid', 'id');
}

期权价格模型:

public function tour(): BelongsTo
{
    return $this->belongsTo(Tour::class, 'optionid', 'id');
}

您可以使用雄辩的数据透视表根据数据库中的列名称指定您的关系

© www.soinside.com 2019 - 2024. All rights reserved.