Laravel-admin 数据来自外部 API

背景: 因为laravel-admin 文档缺少,同事又问了起来;所以在此做一个记录,希望能帮助更多的phper

<?php

namespace App\Models\Movie;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\Request;

class InTheater extends Model
{
   // 必须加上的
   public static function with($relations)
    {
        return new static;
    }

    public function paginate()
    {
        $perPage = Request::get('per_page', 10);

        $page = Request::get('page', 1);

        $start = ($page-1)*$perPage;

        $data = file_get_contents("https://api.douban.com/v2/movie/in_theaters?city=上海&start=$start&count=$perPage");

        $data = json_decode($data, true);

        extract($data);

        $movies = static::hydrate($subjects);

        $paginator = new LengthAwarePaginator($movies, $total, $perPage);

        $paginator->setPath(url()->current());

        return $paginator;
    }

    // 覆盖`orderBy`来收集排序的字段和方向
    public function orderBy($column, $direction = 'asc')
    {

    }

    // 覆盖`where`来收集筛选的字段和条件
    public function where($column, $operator = null, $value = null, $boolean = 'and')
    {

    }

    ...
}

调用 paginate 方法进行覆盖

   protected function grid()
    {
       $grid->paginate();
   }
本作品采用《CC 协议》,转载必须注明作者和本文链接
萧风
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10

这不就是Laravel-Admin文档上的吗?😂

4年前 评论
萧风 (楼主) 4年前

$subject是哪里来的,看的很懵逼啊!、 我遇到一个需求更加懵逼,有部分数据是来自于数据库的,然后有部分数据是依赖于数据库的数据然后使用API查询的。 想了很久,还是不知道该怎么弄。

3年前 评论

这不就是文档的东西嘛,我已经弃用了这种方式,我直接在控制器里写,像laravel那种写法,灵活性比这官方文档好,像加筛选条件或者以后维护修改比文档这种友好

3年前 评论

你把文档的东西扔上来,看了还是一脸懵逼啊, static::hydrate($subjects) hydrate这个静态方法怎么写??? $subjects怎么来的??? $data为什么消失了???

8个月前 评论
lun1bz 8个月前
CKT小凌 (作者) 8个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!