Laravel属于ToMany Relationship问题

时间:2016-03-08 01:10:42

标签: php laravel relationship laravel-5.2

我有另一个问题。我有一个国家模型:

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()只能在一个方向上工作。

示例:如果我将奥地利作为德国的邻国添加,当我查看德国页面时,我会看到奥地利,但是当我看到奥地利页面时,我发现德国不是邻居。 我应该改变什么来使这件事成为可能?

1 个答案:

答案 0 :(得分:0)

你要问的是多对多关系的表自引用。在您的情况下,问题是您在数据透视表中保存从id到另一个。所以它只能以这种方式检索。只有一个关系,你就会遇到密钥顺序问题,无法以两种方式获取它们。

看看这个(最终有两种方法可以双向触发关系):Laravel Many to many self referencing table only works one way

更好的解决方案:https://github.com/laravel/framework/issues/441