У меня нет метаданных в ресурсах laravel - PullRequest
0 голосов
/ 11 января 2020

I мои laravel 5 приложений, которые я возвратил json в элементах управления запросами, например:

$retArray['tasks']          = $taskList;
$retArray['tasks_total_count'] = $tasks_total_count;
return response()->json($retArray, 200);

, включая аддитивные параметры, такие как tasks_total_count, которые использовались для разбивки на страницы.

I * Приложение 1017 * 6 Я использую ресурсы, например:

<?php

namespace App\Http\Resources\Admin;

use App\Facades\MyFuncsClass;
use Illuminate\Http\Resources\Json\JsonResource;

class Task extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'slug' => $this->slug,
            'price' => $this->price,
            ...
            'taskRequireSkills' => !empty($this->taskRequireSkills) ? $this->taskRequireSkills : [],
            'events' => !empty($this->events) ? $this->events : [],
            'events_count' => !empty($this->events_count) ? $this->events_count : 0,
            'created_at' => $this->created_at,
            ...
        ];
    }

    public function with($request)
    {
        return [
            'meta' => [
                'version'=>'1.0.2'
            ]
        ];
    }

}

Я хочу добавить дополнительные метаданные, например версию, но в своем браузере я не вижу эти метаданные: https://prnt.sc/qm4t8y Также, как правильно добавить параметр tasks_total_count в мой ресурс, который отличается для любого запроса?

Спасибо!

1 Ответ

0 голосов
/ 14 января 2020

Я нашел решение, как написано здесь: https://laravel.com/docs/6.x/eloquent-resources#adding -мета-данные вроде:

class TaskCollection extends ResourceCollection
{
    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $task
     * @return array
     */
    public function toArray($task)
    {

        return [
            $this->collection->transform(function($task){
                return [
                    'id' => $task->id,
                    'name' => $task->name,
                    'slug' => $task->slug,
                    ...
                    'date_start' => $task->date_start,
                    'date_end' => $task->date_end,
                    'created_at' => $task->created_at,
                    'updated_at' => $task->updated_at,
                ];
            }),
        ];

    }

    public function with($task)
    {
        return [
            'meta' => [
                'version'=>MyFuncsClass::getAppVersion()
            ]
        ];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...