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 协议》,转载必须注明作者和本文链接
推荐文章: