我有另一个问题。我有一个国家模型:
protected $fillable = [
'code', 'latitude', 'longitude', 'currency_id', 'timezone', 'dam_date', 'status',
];
public function neighbors() {
return $this->belongsToMany('App\Models\Country', 'country_country_relation', 'country_id_1', 'country_id_2');
}
我想向一些国家的邻居展示。不幸的是,neighbors()只能在一个方向上工作。
示例:如果我将奥地利作为德国的邻国添加,当我查看德国页面时,我会看到奥地利,但是当我看到奥地利页面时,我发现德国不是邻居。 我应该改变什么来使这件事成为可能?
答案 0 :(得分:0)
你要问的是多对多关系的表自引用。在您的情况下,问题是您在数据透视表中保存从id到另一个。所以它只能以这种方式检索。只有一个关系,你就会遇到密钥顺序问题,无法以两种方式获取它们。
看看这个(最终有两种方法可以双向触发关系):Laravel Many to many self referencing table only works one way