Since v1.5.16
Encore\Admin\Show is used to show the details of the data. Let's take an example. There is a posts table in the database:
posts
id - integer
author_id - integer
content - text
title - string
content - text
rate - integer
release_at - timestamp
The corresponding data model is App\Models\Post, and the following code can show the data details of the posts table:
<?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)
{
return Admin::content(function (Content $content) use ($id) {
$content->header('Post');
$content->description('Detail');
$content->body(Admin::show(Post::findOrFail($id), function (Show $show) {
$show->field('id', 'ID');
$show->field('title', 'Title');
$show->field('content');
$show->field('rate');
$show->field('created_at');
$show->field('updated_at');
$show->field('release_at');
}));
});
}
}
If you want to show all the fields directly, you can use the following simple method:
$content->body(Admin::show(Post::findOrFail($id)));
If you want to show the specified field directly:
$content->body(Admin::show(Post::findOrFail($id), ['id', 'title', 'content']));
Or specify the label for each field:
$content->body(Admin::show(Post::findOrFail($id), [
'id' => 'ID',
'title' => 'Title',
'content' => 'Contents'
]));
In order to prevent XSS attacks, the default output content will be HTML escape, if you don't want to escape the output HTML, you can call the unescape method:
$show->avatar()->unescape()->as(function ($avatar) {
return "<img src='{$avatar}' />";
});
$show->panel()
->style('danger')
->title('post detail...');
The value of style could be primary, info, danger, warning, default
There are three buttons Edit, Delete, List in the upper right corner of the panel. You can turn them off in the following ways:
$show->panel()
->tools(function ($tools) {
$tools->disableEdit();
$tools->disableList();
$tools->disableDelete();
});;