雄辩的关系hasManyThrough

时间:2018-03-11 23:41:37

标签: laravel laravel-5 eloquent laravel-eloquent

我有三个模特

  • Markt的
  • Koppel_standhouders_markten
  • Standhouders

Markt通过hasManyThrough koppel_standhouders_markten

拥有许多支持者

markt表的id与koppel_standhouders_markten中的markt_id相匹配。 Koppel_standhouders_markten有一个standhouder_id,它与standhouders的id相匹配。

我将hasManyThrough定义如下:

return $this->hasManyThrough(
        'App\Models\Standhouder',
        'App\Models\Koppel_standhouders_markten',
        'markt_id', // Foreign key on Koppel_standhouders_markten table...
        'id', // Foreign key on Standhouder table...
        'id', // Local key on markt table...
        'standhouder_id' // Local key on Koppel_standhouders_markten table...
    );

我会看到这是正确的,但是当我查看我的数据时。它已将koppel_standhouders_markten的id与Standhouders中的id匹配,而不是从koppel_standhouders_markten获取standhouder_id以匹配standhouders的id。

真的希望有人可以帮助我。它一定是简单的我做错了。

2 个答案:

答案 0 :(得分:0)

我相信你混淆了一些参数。

我认为你应该如何定义它:

return $this->hasManyThrough(
    'App\Models\Standhouder',
    'App\Models\Koppel_standhouders_markten',
    'markt_id',
    'standhouder_id'
);

最后两个参数是本地ID,因为您无论如何都要使用id列,因此您无需明确定义。

答案 1 :(得分:0)

我遇到的问题是hasManyThrough只有4个参数。 2为模型,2为外键。直到laravel 5.5,您还可以输入本地密钥。