美文网首页
Laravel Resource toArray get seq

Laravel Resource toArray get seq

作者: 段义纬 | 来源:发表于2019-07-30 10:56 被阅读0次

1、背景:需要根据接口中文章的位置计算曝光,曝光由文章首图的日志统计处理,所以需要在文章首图的url中拼上当前文章的在此次接口中的位置以及当前页码

2、实现:当前文章在此次接口返回数据中的位置;

use Illuminate\Http\Resources\Json\Resource;
use App\Models\Traits\WithIndexTrait;

class SubjectToArrayResource extends Resource
{
    use WithIndexTrait;

    public $resource;

    // default constructor to make
    // anonymous class work
    public function __construct($resource = null)
    {
        if ($resource) {
            parent::__construct($resource);
        }
    }

    public function toArray($request)
    {
        ……
        $this->index
        ……
    }

    public function with($request)
    {
        return [
            'errcode' => 0,
            'msg'     => 'ok'
        ];
    }
}
use App\Ship\Http\Json\ApiCollection;

trait WithIndexTrait
{
    public $index;

    public static function collection($resource)
    {
        return new class($resource, get_called_class()) extends ApiCollection
        {
            /**
             * @var string
             */
            public $collects;

            /**
             * Create a new anonymous resource collection.
             *
             * @param mixed $resource
             * @param string $collects
             */
            public function __construct($resource, $collects)
            {
                $this->collects = $collects;

                parent::__construct($resource);
            }

            public function toArray($request)
            {
                return $this->collection
                    ->map(function ($item, $key) use ($request) {
                        // 这个item指的是resource,不是model
                        $item->index = $key;
                        return $item->toArray($request);
                    })
                    ->all();
            }
        };
    }
}

相关文章

  • Laravel Resource toArray get seq

    1、背景:需要根据接口中文章的位置计算曝光,曝光由文章首图的日志统计处理,所以需要在文章首图的url中拼上当前文章...

  • Laravel toArray

    larval toArray 之前开发的时候遇到的一个问题 数据库查出来的对象在没toArray之前遍历,针对关联...

  • 用mysql生成唯一主键

    CREATE PROCEDURE pkg_get_task_id_seq(IN seq_name VARCHAR(...

  • 轻量级模拟jQuery框架封装

    jQuery 轻量级jQuery代码分析 已经实现的功能: each方法,map方法,toArray方法,get方...

  • HTTP request method 面试题

    GET It requests a resource at the request URL. It should ...

  • laravel模型

    laravel中总模型可以直接toArray() 在今天立哥review代码的时候提出来的.原代码: 改进后的代码...

  • vue练习02

    1.vue_resource_get//不能使用post 2.vue_resource_jsonp 3.vue_v...

  • Vue 实现POST数据,并请求数据

    安装vue-resource 打开main.js配置vue-resource 点击按钮实现POST数据 Get获取...

  • laravel控制器与模型名称不统一

    在使用laravel开发时,laravel控制器与模型名称不统一会造成resource资源不能正常的解析到对应的资...

  • Laravel中resource方法

    新增的 resource 方法将遵从 RESTful 架构为用户资源生成路由。该方法接收两个参数,第一个参数为资源...

网友评论

      本文标题:Laravel Resource toArray get seq

      本文链接:https://www.haomeiwen.com/subject/jgsgrctx.html