Как отобразить ресурсы API Laravel для несвязанных моделей - PullRequest
1 голос
/ 23 марта 2019

Привет, я создаю не связанные ресурсы модели.Запасы и Категории.У них есть модели отношений с детьми, но они не связаны напрямую.

Пример:

{
  "data": {
    "inventories": [
      {
        "id": 1,
        "user_id": 1,
        "sub_category_id": 6,
        "created_at": "2019-03-08 03:00:00",
        "updated_at": "2019-03-08 03:00:00",
        "deleted_at": null,
        "get_inventory_details": {
          "id": 1,
          "inventory_id": 1,
          "image_path": "Pahiram-Drone1-1.png",
          "name": "Drone i1",
          "description": "Drone i1 The Best Drone yet!",
          "quantity": 10,
          "cost_per_day": 1000,
          "cost_per_hour": 100,
          "status": "0",
          "created_at": "2019-03-08 03:00:00",
          "updated_at": "2019-03-08 03:00:00",
          "deleted_at": null
        }
      }
    ],"categories": [
      {
        "id": 1,
        "category_id": 1,
        "parent_id": null,
        "created_at": "2019-03-08 03:00:00",
        "updated_at": "2019-03-08 03:00:00",
        "deleted_at": null,
        "get_sub_category_details": {
          "id": 1,
          "sub_category_id": 1,
          "category_type_id": 1,
          "name": "Drone DJI 1",
          "description": "Drone DJI 1",
          "created_at": "2019-03-08 03:34:23",
          "updated_at": "2019-03-08 03:34:23",
          "deleted_at": null
        }
      }
    ]
  }
}

Это мои примеры данных

Работает с:

    public function toArray($request)
    {
        return parent::toArray($request);
    }

Но не:

     public function toArray($request)
     {
         return [
             'inventory_ids' => $this->inventories->id,
             'category_ids' => $this->categories->id
         ];
     }

Мой ожидаемый результат - возможность отобразить мой ответ.

1 Ответ

1 голос
/ 23 марта 2019

Вы не получаете прямой доступ id из категорий и запасов, потому что это массив, а не объект.

Это должно быть полезно для вас.

$categoryIds = Collection::make($this->categories)->pluck('id')->toArray();
$inventoryIds = Collection::make($this->inventories)->pluck('id')->toArray();


return [
  'category_ids' => $categoryIds,
  'inventory_ids' => $inventoryIds
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...