在Laravel的Eloquent中,我在哪里定义多对多关系中的联结表?

时间:2014-03-13 12:41:40

标签: laravel phpmyadmin eloquent

在雄辩中,我看到了“多对多”的关系: http://laravel.com/docs/eloquent

我没有使用迁移并制作了两个表'用户'和表#角色'在phpmyadmin。 他们都有一个' id'和' name'柱。现在我做了以下模型:

class User extends Eloquent {

    public function roles()
    {
        return $this->belongsToMany('Role');
    }

}



class Role extends Eloquent {

    public function users()
    {
        return $this->belongsToMany('User');
    }

}

我的第一个问题是。还是需要在phpmyadmin中建立联结表吗? 如果是,我如何告诉Eloquent(例如' users_roles')是我的联结表?

2 个答案:

答案 0 :(得分:0)

是的,您仍然需要创建表格。

在模型中,将表名添加为belongsToMany的第二个参数。

答案 1 :(得分:0)

您确实必须拥有该表,并且您可以遵循Laravel约定或在$this->belongsTomany();的调用中手动指定它。这两种方式都记录在Eloquent documentation中。约定按字母顺序和单个表名(角色,用户,role_user)。要在通话中指定它,您可以指定各种事物:return $this->belongsToMany('ForeignModel', 'pivot_table', 'local_id', 'foreign_id');