使用属于以下项的键获取对象的值

时间:2019-04-03 14:49:03

标签: php database laravel

我建立了一个显示服务器规格和功能的网站:

主要对象是: 类别: 表示服务器的类别(“共享服务器”,“云服务器”) 该类别包含程序包(计划),并且一个类中的所有程序包具有相同的功能,但值不同。 该类别还包含一些服务和一些常见问题解答。

包装: 包含软件包(计划),例如(“业务计划”,“无限计划”,“工作计划”) 所有程序包都具有相同的形式,但是通用功能的值不同。

管理员可以创建类模板并添加此类别中可用的功能,然后在此类别中添加软件包。

我创建了此数据库设计(图像链接:https://i.imgur.com/aUgR6mb.png

按键功能模型

class HostingFeatureKey extends Model
{
    protected $table = 'hosting_feature_keys';

    public function feature_values()
    {
        return $this->hasManyThrough(
            'App\HostingPackageHasFeatureValue',
            'App\HostingCategoryHasFeatureKey',
            'feature_key_id',
            'category_has_feature_key_id',
            'id',
            'id'
        );
    }

    public function feature_value_of(HostingPackage $package)
    {
        return $this->feature_values()->get()->where('package_id', $package->id)->first();
    }
}
  • 函数“ feature_value_of”正常工作

包装型号

class HostingPackage extends Model
{
    protected $table = 'hosting_packages';


    public function category()
    {
        return $this->belongsTo('App\HostingCategory', 'category_id');
    }

    public function icon()
    {
        return $this->belongsTo('App\HostingIcon', 'icon_id');
    }

    public function feature_values()
    {
        return $this->hasMany('App\HostingPackageHasFeatureValue', 'package_id', 'id');
    }

    public function feature_value_of(HostingFeatureKey $feature_key)
    {
        //
    }
}

如何在HostingPackage模型中实现“ feature_value_of”功能,以将该对象的“ feature_key”键的值作为HostingFeatureKey模型中的“ feature_value_of”功能返回。

0 个答案:

没有答案