//type 控制器
static public function getInfo($id)
{
$info = \app\adminapi\model\type::with(['attr','spec','spec.specValue'])->find($id)->toArray();
foreach ($info['spec'] as &$item){
$temp = [];
foreach ($item['specValue'] as $value){
$temp[$value['id']] = $value['spec_value'];
}
$item['specValue'] = $temp;
}
dd($info);
}
//type 模型
/**
* 类型与属性的关系:一个模型对应多个属性
* @return \think\model\relation\HasMany
*/
public function attr()
{
return $this->hasMany(Attribute::class,'type_id','id');
}
public function spec()
{
return $this->hasMany(spec::class,'type_id','id');
}
首先,创建一个属性模型Attribute
php think make:model adminapi@Attribute
再创建一个规格模型Spec
php think make:model adminapi@Spec
在商品类型的模型中声明类型与规格的关系
/**
* 模型与规格的关系:一个模型对应多个规格
* @return \think\model\relation\HasMany
*/
public function specValue(){
return $this->hasMany(specValue::class,'spec_id','id');
}
再创建一个模型规格值SpecValue
php think make:model adminapi@SpecValue