如何在具有多个数据透视表的laravel中建立关系?

时间:2018-11-11 14:20:54

标签: php laravel

我有一张桌子:

  • 用户(id,名称,姓氏)
  • 婚礼(id,...)
  • 婚礼用户(id,wedding_id,user_id,role_id)
  • 婚礼用户权限(wedding_user_id,permission_id)

我想在Wedding和WeddingUser模型之间建立关系(Wedding有很多WeddingUser,WeddingUser属于Wedding)。

实际上,如果我忽略laravel关系,则模型将为:

//Wedding Model 

public function users()
    {
        $users = WeddingUser::where('wedding_id', $this->id)->get();
        return $users;
    }

但是我需要使用laravel关系来做到这一点。

我尝试过:

public function users()
    {
        return $this->belongsToMany(
            'App\Models\WeddingUser',
            'wedding_user',
            'user_id'
        );
    }

但是会引发错误:

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'wedding_user' (SQL: select `wedding_user`.*, `wedding_user`.`user_id` as `pivot_user_id`, `wedding_user`.`wedding_user_id` as `pivot_wedding_user_id` from `wedding_user` inner join `wedding_user` on `wedding_user`.`id` = `wedding_user`.`wedding_user_id` where `wedding_user`.`user_id` in (1))

如何正确执行?

0 个答案:

没有答案