Tenho uma estrutura de subcategorias que estão relacionadas a uma categoria. O relacionamento é feito pelo ID mas desejo retornar o nome da categoria.
Pra isso, criei o Accessor na Model da Subcategoria:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Subcategoria extends Model
{
protected $table = 'subcategoria';
protected $keyType = 'integer';
protected $fillable = ['id_categoria', 'nome'];
protected $appends = ['anexos'];
public function categoria()
{
return $this->belongsTo(Categoria::class, 'id_categoria');
}
public function produto()
{
return $this->hasMany(Produto::class, 'id_subcategoria');
}
public function getAnexosAttribute()
{
return [
'categoria' => $this->categoria->nome,
];
}
}
Porém, quando realizo a requisição, no JSON retorna todas as informações da Categoria, conforme exemplo:
{
"id": 16,
"nome": "Coca-Cola Zero Lata",
"id_categoria": 13,
"created_at": "2019-09-25 18:05:51",
"updated_at": "2019-09-25 18:05:51",
"anexos": {
"categoria": "Bebidas"
},
"categoria": {
"id": 13,
"nome": "Bebidas",
"created_at": "2019-09-19 19:59:06",
"updated_at": "2019-09-19 19:59:15",
}
}
Como faço para retirar as informações da Categoria na resposta?