如何在laravel关系中添加两个条件?

时间:2019-12-05 04:57:16

标签: laravel

我有一个postgroupusergroup_user表。帖子表具有user_idgroup_id外键,而group_user也具有user_idgroup_id外键。

在后关系中,我想要group_userpost相同的user_id的{​​{1}}详细信息。但是我找不到更好的方法。有没有一种方法可以在关系表中放置两个条件?

2 个答案:

答案 0 :(得分:0)

在尝试与laravel hasonethrough关系时,我添加了以下方法。但这行不通。我还需要user_id的第二个条件。

在上课时

public function groupUser()
     {
         return $this->hasManyThrough( 'App\Models\User','App\Models\GroupUser','group_id','id','group_id','user_id')->select('group_user.*');
     } 

如果该组中有更多用户,则显示多个用户。我只需要创建帖子的用户。

我故意保留hasManyThrough以检查仅出现一个结果。

答案 1 :(得分:0)

最后,我创建了一个自定义类并覆盖addEagerConstraints方法。有效。谢谢

public function addEagerConstraints(array $models)
{
    $whereIn = $this->whereInMethod($this->farParent, $this->localKey);

    $this->query->{$whereIn}(
        $this->getQualifiedFirstKeyName(), $this->getKeys($models, $this->localKey)
    );
     $this->query->{$whereIn}(
        $this->getQualifiedFarKeyName(), $this->getKeys($models, $this->secondLocalKey)
    );
}