【问题标题】:How in laravel resources to add order field?如何在 laravel 资源中添加订单字段?
【发布时间】:2021-01-30 22:57:31
【问题描述】:

在 laravel 7 应用程序中,我在控制器中使用集合:

return (new TaskCollection($tasks));

和 app/Http/Resources/TaskCollection.php :

<?php

namespace App\Http\Resources;
use App\Facades\MyFuncsClass;
use App\Task;

use Illuminate\Http\Resources\Json\ResourceCollection;

class TaskCollection extends ResourceCollection
{
    public static $wrap = 'tasks';
    public function toArray($request)
    {
        return $this->collectResource($this->collection)->transform(static function (Task $task){
                return [
                    'id' => $task->id,
                    ....
                    'created_at' => $task->created_at,
                    'updated_at' => $task->updated_at,
                    'deleted_at' => $task->deleted_at,
                ];
            });

    }

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

}

我需要在下一行添加订单字段(从 0 值)+ 1。我该怎么做?

谢谢!

【问题讨论】:

    标签: laravel laravel-resource


    【解决方案1】:

    使用map函数:

    public function toArray($request)
    {
        $this->collection = $this->collection->map(function ($item, $key) {
            $item['order'] = $key;
            return $item;
        });
    
        return $this->collectResource($this->collection)->transform(static function (Task $task){
            return [
                'id' => $task->id,
                'order' => $task->order,
                    ....
                'created_at' => $task->created_at,
                'updated_at' => $task->updated_at,
                'deleted_at' => $task->deleted_at,
            ];
       });
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      相关资源
      最近更新 更多