【问题标题】:How to create relate one table with others using Eloquent ORM如何使用 Eloquent ORM 创建与其他表相关联的表
【发布时间】:2013-12-11 09:41:25
【问题描述】:
用户表: id -> 整数 电子邮件-> varchar 标记表: id -> 整数 名称-> varchar tags_user 表 tab_id ->foreign('tag_id')->references('id')->on('tag'); user_id ->foreign('user_id')->references('id')->on('user');

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

谢谢

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    你需要多对多的关系:

    在您的用户模型中:

    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

    【讨论】:

    • 我相信 tag_user 是正确的,除此之外,很好的总结。
    • 谢谢你。
    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多