Как включить красноречивые добавленные атрибуты в JsonResource

Я хотел бы включить добавленные атрибуты во время создания моего ответа API в классе ресурсов.

Для этого у меня есть класс модели под названием Article.php.

class Article extends Model
{
    protected $table = 'articles';

    protected $fillable = ['id', 'articleNo'];
    protected $appends = ['is_available'];

    public function getIsAvailableAttribute() {
        return true;
    }

СтатьяController.php

public function index() {
    $articles = Article::all();
    return ArticleResource::collection($articles);
}

СтатьяResource.php

class ArticleResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'articleNumber' => $this->articleNo,
            'isAvailable' => $this->is_available,
        ];
    }
}

Когда я пытаюсь запустить свой код, он выдает следующую ошибку:

ErrorException (E_NOTICE) Undefined property: stdClass::$is_available

если я удалю строку isAvailable из моего ArticleResource, это сработает.

Я не вижу никакого кода, ищущего свойство in_stock. Я не думаю, что проблема где-то в коде, который вы разместили до сих пор.

Travis Britz 10.02.2019 19:03

Извините, моя ошибка, это должно быть доступно, я только что исправил это в вопросе

EggIT 11.02.2019 09:14

Я думаю, что если вы сделаете return Article::get() в своем index(), он вернет все appends

Chamara Abeysekara 11.02.2019 10:36

Но тогда он не пройдет через ArticleResource, не так ли?

EggIT 11.02.2019 11:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
50
0

Другие вопросы по теме