如何使用Eloquent ORM创建与其他人关联的表

时间:2013-12-11 09:41:25

标签: laravel eloquent

    User TABLE:
    id -> int
    email -> varchar
    Tag TABLE:
    id -> int
    name -> varchar
    tags_user TABLE
    tab_id ->foreign('tag_id')->references('id')->on('tag');
    user_id ->foreign('user_id')->references('id')->on('user');

如何从特定用户获取所有标签?

感谢

1 个答案:

答案 0 :(得分:2)

你需要多对多的关系:

在您的用户模型中:

class User extends Eloquent {

    public function tags()
    {
        return $this->belongsToMany('Tag');
    }

}

在您的代码模型中

class Tag extends Eloquent {

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

}

然后从您的控制器 利用多对多的关系。

$tags = User::find(1)->tags;

重要:

此关系需要三个数据库表:userstagstag_usertag_user表来自相关模型名称的字母顺序,应该有user_idtag_id列。

参考:

http://laravel.com/docs/eloquent#many-to-many