界面

代码
<?php
namespace App\Admin\Controllers\Demo;
use App\Models\Demo\Category;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Content;
use App\Http\Controllers\Controller;
use Encore\Admin\Controllers\ModelForm;
use Encore\Admin\Tree;
class CategoryController extends Controller
{
...
protected function tree()
{
return Category::tree(function (Tree $tree) {
$tree->branch(function ($branch) {
$src = config('admin.upload.host') . '/' . $branch['logo'] ;
$logo = "<img src='$src' style='max-width:30px;max-height:30px' class='img'/>";
return "{$branch['id']} - {$branch['title']} $logo";
});
});
}
protected function form()
{
return Category::form(function (Form $form) {
$form->display('id', 'ID');
$form->select('parent_id')->options(Category::selectOptions());
$form->text('title');
$form->textarea('describe');
$form->image('logo');
$form->display('created_at', 'Created At');
$form->display('updated_at', 'Updated At');
});
}
}
模型
app/Models/Demo/Category.php
<?php
namespace App\Models\Demo;
use Encore\Admin\Traits\AdminBuilder;
use Encore\Admin\Traits\ModelTree;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use ModelTree, AdminBuilder;
protected $table = 'demo_categories';
public static function boot()
{
parent::boot();
static::saved(function (Model $model) {
//获取id $model->id
});
}
}
表结构
CREATE TABLE `demo_categories` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`parent_id` int(11) NOT NULL DEFAULT '0',
`order` int(11) NOT NULL DEFAULT '0',
`title` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`logo` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`describe` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-END-