Я пытаюсь добавить дополнительное поле к моей Laravel 7 модели API:
class Layer extends Model {
protected $fillable = ['name', 'filename', 'status', 'category_id'];
protected $appends = ['category_name'];
public function getCategoryNameAttribute()
{
return $this->category->name;
}
public function category()
{
return $this->belongsTo('App\LayerCategory', 'category_id');
}
}
Мой контроллер:
.....
public function index()
{
return Layer::orderBy('name', 'asc')->paginate();
}
.....
Ожидается следующий ответ:
{
"id": 1,
"category_id": 1,
"name": "My Layer",
"filename": "file_name.zip",
"status": true,
"category_name": "My category name"
}
Но я получаю:
{
"id": 1,
"category_id": 1,
"name": "My Layer",
"filename": "file_name.zip",
"status": true,
"category_name": "My category name",
"category": [
"id": 1,
"name": "My category name",
"status": true
]
}
Как вернуть только название категории? PS: я тоже пробовал с Ресурсами.