我建立了一个显示服务器规格和功能的网站:
主要对象是: 类别: 表示服务器的类别(“共享服务器”,“云服务器”) 该类别包含程序包(计划),并且一个类中的所有程序包具有相同的功能,但值不同。 该类别还包含一些服务和一些常见问题解答。
包装: 包含软件包(计划),例如(“业务计划”,“无限计划”,“工作计划”) 所有程序包都具有相同的形式,但是通用功能的值不同。
管理员可以创建类模板并添加此类别中可用的功能,然后在此类别中添加软件包。
我创建了此数据库设计(图像链接: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();
}
}
包装型号
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”功能返回。