界面
代码
<?php
namespace App\Admin\Controllers\Sakila;
use App\Models\Sakila\Film;
use App\Models\Sakila\Language;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Form;
use App\Http\Controllers\Controller;
class FilmController extends Controller
{
...
protected function grid()
{
return Admin::grid(Film::class, function (Grid $grid) {
$grid->id('ID')->sortable();
$grid->title()->editable();
$grid->release_year()->editable('year');
$grid->language()->name('Language');
$grid->categories()->value(function ($categories) {
$categories = array_map(function ($category) {
return "<span class='label label-warning'>{$category['name']}</span>";
}, $categories);
return join(' ', $categories);
});
$options = ['G','PG','PG-13','R','NC-17'];
$grid->rating()->editable('select', array_combine($options, $options));
$grid->special_features();
$grid->created_at();
$grid->disableBatchDeletion();
$grid->filter(function ($filter) {
$filter->like('title');
$filter->is('language_id')->select(Language::all()->pluck('name', 'id'));
});
});
}
protected function form()
{
return Admin::form(Film::class, function (Form $form) {
$form->display('id', 'ID');
$form->text('title');
$form->textarea('description');
$form->year('release_year');
$form->select('language_id', 'Language')->options(Language::all()->pluck('name', 'id'));
$form->select('original_language_id', 'Original language')->options(Language::all()->pluck('name', 'id'));
$form->number('rental_duration');
$form->decimal('rental_rate');
$form->decimal('replacement_cost');
$options = ['G','PG','PG-13','R','NC-17'];
$form->select('rating')->options(array_combine($options, $options))->default('G');
$options = ['Trailers','Commentaries','Deleted Scenes','Behind the Scenes'];
$form->multipleSelect('special_features')->options(array_combine($options, $options));
$form->multipleSelect('categories')->options(Category::all()->pluck('name', 'id'));
$form->display('created_at', 'Created At');
$form->display('updated_at', 'Updated At');
});
}
...
}
模型
表结构
-END-