Skip to main content

基本使用

数据模型详情

v1.5.16版本及以上支持

Encore\Admin\Show用来显示数据详情,先来个例子,数据库中有posts表:

CREATE TABLE `posts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`author_id` int(10) unsigned NOT NULL ,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`content` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`rate` int(255) COLLATE utf8_unicode_ci NOT NULL,
`release_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

对应的数据模型为App\Models\Post,下面的代码可以显示posts表的数据详情:

<?php

namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Post;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Layout\Content;
use Encore\Admin\Show;

class PostController extends Controller
{
public function show($id, Content $content)
{
return $content->header('Post')
->description('详情')
->body(Admin::show(Post::findOrFail($id), function (Show $show) {

$show->id('ID');
$show->title('标题');
$show->content('内容');
$show->rate();
$show->created_at();
$show->updated_at();
$show->release_at();
}));
}
}

如果要直接显示所有的字段,可以用下面的简单方式:

$content->body(Admin::show(Post::findOrFail($id)));

如果要直接显示指定的字段:

$content->body(Admin::show(Post::findOrFail($id), ['id', 'title', 'content']));

或者指定每一个字段的label:

$content->body(Admin::show(Post::findOrFail($id), [
'id' => 'ID',
'title' => '标题',
'content' => '内容'
]));

基本使用方法

内容转义

为了防止XSS攻击, 默认输出的内容都会使用HTML转义,如果你不想转义输出HTML,可以调用unescape方法:

$show->avatar()->unescape()->as(function ($avatar) {

return "<img src='{$avatar}' />";

});

修改面板的样式和标题

$show->panel()
->style('danger')
->title('post基本信息...');

style的取值可以是primary、info、danger、warning、default

面板工具设置

面板右上角默认有三个按钮编辑、删除、列表,可以分别用下面的方式关掉它们:

$show->panel()
->tools(function ($tools) {
$tools->disableEdit();
$tools->disableList();
$tools->disableDelete();
});;