【发布时间】:2021-11-03 22:14:41
【问题描述】:
我正在使用 Laravel 开发一个 API。在我正在访问的一个端点中,一些字段显示为空值,但它应该包含一些信息。
注意“addicionais_descricao”和“valor”字段,当我将它们包含在attributeitems数组中时,它们总是带有空值,但是如果我将其保留在初始级别,则会显示数据,但不能解决我的情况,因为我需要带有属性项的这些信息:
这是端点调用的地方,我在“Attribute”表中进行查询,该表与“Attributeitems”表有关系,而“attributeitems”表与“Attribute”和“product”链接。
public function show($id)
{
$atributos = Atributo::query('atributo')
->select(
'atributo.id',
'atributo.atrdescricao',
'atributoitens.atributo_id',
'atributoitens.produto_id',
'produto.prodescricao',
'produto.provalor'
)
->leftJoin('atributoitens', 'atributo.id', '=', 'atributoitens.atributo_id')
->leftJoin('produto', 'produto.id', '=', 'atributoitens.produto_id')
->where('atributo.id', '=', $id)
->get()->unique('id');
return AtributoResource::collection($atributos);
}
资源属性:
public function toArray($request)
{
return [
'id' => $this->id,
'descricao' => $this->atrdescricao,
'atributoitens' => AtributoitensResource::collection($this->atributoitens),
];
}
资源属性:
public function toArray($request)
{
return [
'id' => $this->id,
'atributo' => $this->atributo_id,
'produtos' => $this->produto_id,
'adicionais_descricao' => $this->prodescricao,
'valor' => $this->provalor
];
}
这种情况的正确程序是什么?
【问题讨论】:
标签: laravel api eloquent collections resources