【问题标题】:Confused with Eloquent relationship | Simple Phone Inventory Database混淆了雄辩的关系 |简单的电话库存数据库
【发布时间】:2019-11-30 07:23:25
【问题描述】:

我很困惑为我的数据库模式创建 Laravel 模型类。如何建立关系?

表格:

table_phone
    id
    imei
    model_id

table_model
    id
    name
    photo_id
    manufacturer_id

table_manufacturer
    id
    name
    photo_id

数据类:

class Phone extends Model {

    function model() {

    }

}

class PhoneModel extends Model {

    function getPhones() {

    }

    function manufacturer() {

    }

}

class PhoneManufacturer extends Model {

    function getPhones() {

    }

    function getModels() {

    }

Phone 类有一个PhoneModel(one-to-one)

PhoneModel 类有一个PhoneManufacturer(one-to-one)

PhoneManufacturer 类应该有一个方法getModels(),它应该返回与manufacturer_id 关联的所有PhoneModel 类。

PhoneManufacturer 类应该有一个方法getPhones(),它应该返回与PhoneModel 类中的manufacturer_id 关联的所有Phone 类。

PhoneModel 类应该有一个方法getPhones(),它应该返回与model_id 关联的所有PhonePhone 类。

Phone 类应该有model 方法和manufacturer 方法。 PhoneModel 类应该有 manufacturer 方法。

【问题讨论】:

    标签: laravel database-design eloquent eloquent-relationship


    【解决方案1】:

    你必须以这种方式建立关系:

    class Phone extends Model {
        public function phonemodel()
        {
            return $this->hasOne(PhoneModel::class)
        }
    }
    
    class PhoneModel extends Model {
        public function phone()
        {
            return $this->belongsTo(Phone::class)
        }
    
        public function manufacturer()
        {
            return $this->belongsTo(Manufacturer::class)
        }
    }
    
    class Manufacturer extends Model {
        public function model()
        {
            return $this->hasMany(PhoneModel::class)
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 1970-01-01
      • 2016-07-02
      • 2023-03-16
      • 1970-01-01
      • 2015-02-21
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多