界面
代码
<?php
namespace App\Admin\Controllers\Movies;
use App\Http\Controllers\Controller;
use App\Models\Movie\InTheater;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Encore\Admin\Widgets\Tab;
class InTheaterController extends Controller
{
...
protected function grid()
{
return Admin::grid(InTheater::class, function (Grid $grid) {
$grid->title();
$grid->images()->first()->image();
$grid->year();
$grid->rating()->display(function ($rating) {
return $rating['average'];
});
$grid->directors()->pluck('name')->label('primary');
$grid->casts()->pluck('name')->label();
$grid->genres()->badge();
//$grid->disableActions();
$grid->disableBatchDeletion();
$grid->disableExport();
$grid->disableCreation();
$grid->disableFilter();
});
}
protected function form()
{
return Admin::form(InTheater::class, function (Form $form) {
$form->display('id', 'ID');
$form->text('title')->rules('required');
$form->text('original_title');
$form->textarea('summary');
$form->url('alt');
$form->url('mobile_url');
$form->url('share_url');
$form->tags('countries');
$form->tags('genres');
$form->tags('aka');
$form->year('year');
});
}
}
模型
<?php
namespace App\Models\Movie;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\Request;
class InTheater extends Model
{
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;
}
public static function with($relations)
{
return new static;
}
public function findOrFail($id)
{
$data = file_get_contents("http://api.douban.com/v2/movie/subject/$id");
$data = json_decode($data, true);
return static::newFromBuilder($data);
}
public function save(array $options = [])
{
dd($this->getAttributes());
}
}