我正在学习Laravel,需要获得嵌套关系的列表。我的外键似乎设置正确。
products->servers->configs
产品控制器
$products = Product::with('servers')->get();
产品型号
public function servers()
{
return $this->hasManyThrough(Config::class, Server::class);
}
我只得到一个配置服务器的列表。例如
products:{
id:1,
servers:[
ram:16gb //this is the config not the server
]
}
如何获取产品内服务器内的配置列表?例如
products:{
id:1,
server:{
id:1,
name:'big server',
config:{
ram:16gb
}
}
}
在产品模式中使用hasMany
方法
public function servers()
{
return $this->hasMany(Server::class);
}
在服务器模式中使用hasMany(for many rows get)
或hasOne(for single row get)
方法
public function configs()
{
return $this->hasMany(Config::class);
}
public function config()
{
return $this->hasOne(Config::class);
}
现在在ProuctController
中查看如何获取嵌套关系数据
$products = Product::with('servers.configs')->get();