界面
代码
<?php
namespace App\Admin\Controllers\Demo;
use App\Http\Controllers\Controller;
use App\Models\Article;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Content;
use Encore\Admin\Controllers\ModelForm;
use Encore\Admin\Widgets\Tab;
class ArticleController extends Controller
{
use ModelForm;
...
protected function grid()
{
return Admin::grid(Article::class, function (Grid $grid) {
$grid->model()->ordered();
$grid->id('ID')->sortable();
$grid->title()->editable();
$grid->content()->editable();
$grid->picture()->image();
$grid->order()->orderable();
$grid->created_at();
$grid->updated_at();
});
}
protected function form()
{
return Admin::form(Article::class, function (Form $form) {
$form->display('id', 'ID');
$form->text('title')->rules('required');
$form->textarea('content')->rules('required');
$form->image('picture');
$form->display('created_at', 'Created At');
$form->display('updated_at', 'Updated At');
});
}
...
}
模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Spatie\EloquentSortable\Sortable;
use Spatie\EloquentSortable\SortableTrait;
class Article extends Model implements Sortable
{
use SortableTrait;
protected $table = 'demo_articles';
public $sortable = [
'order_column_name' => 'order',
'sort_when_creating' => true,
];
}
表结构
CREATE TABLE `demo_articles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(190) COLLATE utf8_unicode_ci NOT NULL,
`content` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`picture` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`order` int(11) NOT NULL DEFAULT '0',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci