【问题标题】:translating database relationships to Eloquent relationships将数据库关系转换为 Eloquent 关系
【发布时间】:2015-11-15 18:39:27
【问题描述】:

所以,我一直在尝试从 laracast 中观察和解读雄辩的关系。不幸的是,我仍然不太明白如何将数据库关系转换为雄辩的关系(hasOne、belongsTo、hasMany 等)。

假设我有一个 Account 和 Customer 表。 Account 表有一个“Customer_id”外键,它引用了 Customer 表上的“id”。让我们假设这是一个一对多的关系。我应该如何将它放在我在 laravel 上的模型上?

哪个表应该包含“hasMany”,哪个应该有“belongsTo”?

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

    想想你会怎么说。在您的情况下,听起来客户有许多帐户,而帐户属于一个客户。

    因此,您可以将hasMany() 放入您的Customer 模型中,并将belongsTo() 放入您的Account 模型中。

    class Customer extends Model {
    
        public function accounts() {
            return $this->hasMany('App\Account');
        }
    
    }
    
    class Account extends Model {
    
        public function customer() {
            return $this->belongsTo('App\Customer');
        }
    
    }
    

    你可以阅读更多关于 Laravel 数据库关系here

    【讨论】:

    • 谢谢!所以只是为了深入研究,无论哪个表有外键都会得到belongsTo(),而外键引用的表会得到hasMany()对吗?
    • 对于正确的一对多关系。对于多对多,两个模型都得到一个belongsToMany() 方法。
    猜你喜欢
    • 2020-01-08
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2021-01-26
    • 2010-10-26
    • 1970-01-01
    相关资源
    最近更新 更多