laravel one to many / belongssto

时间:2015-04-02 13:47:30

标签: laravel eloquent one-to-many

我的db中有以下结构(不可编辑):

-- Table 'computers'
---------------------------
id, operatingsystems_id

-- Table 'operatingsystems'
---------------------------
id, name

一台计算机可以有一个操作系统(一对一),但一个操作系统可以有多台计算机(一对多)

我已经定义了以下内容,我这样做是错误的吗?

class Computer {
    protected $table = 'computers';
    public function operatingSystem()
    {
        return $this->belongsTo('OperatingSystem', 'operatingsystems_id');
    }
}

class OperatignSystem {
    protected $table = 'operatingsystems';
    public function computers()
    {
        return $this->hasMany('Computer', 'operatingsystems_id');
    }
}

因为问题在于我什么时候

Computer::find(1)->operatingSystem()->get()

我收到了一个收藏品

1 个答案:

答案 0 :(得分:0)

尝试使用关系:

return $this->hasOne('OperatingSystem', 'operatingsystems_id');

然后你可以使用:

$os = Computer::find(1)->operatingSystem;