基本使用

未匹配的标注

数据详情基本使用

Dcat\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,数据仓库为App\Admin\Repositories\Post,下面的代码可以显示posts表的数据详情:

<?php

namespace App\Admin\Controllers;

use App\Http\Controllers\Controller;
use App\Admin\Repositories\Post;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Show;
use Dcat\Admin\Admin;

class PostController extends Controller
{
    public function show($id, Content $content)
    {
        return $content->header('Post')
            ->description('详情')
            ->body(Show::make($id, new Post(), function (Show $show) {
                $show->id('ID');
                $show->title('标题');
                $show->content('内容');
                $show->rate();
                $show->created_at();
                $show->updated_at();
                $show->release_at();
            }));
    }
}

基本使用方法

HTML内容转义(unescape)

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

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

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

});

字段宽度

字段宽度默认值为“3”,可以设置1-12之间的数字。

$show->created_at->width(4);

面板的样式和标题

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

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

工具栏

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

$show->panel()
    ->tools(function ($tools) {
        $tools->disableEdit();
        $tools->disableList();
        $tools->disableDelete();
        // 显示快捷编辑按钮
        $tools->showQuickEdit();
    });

自定义复杂工具按钮

请参考文档数据详情动作

多列布局

使用

Since v1.3.4

$show->row(function (Show\Row $show) {
    $show->width(3)->id;
    $show->width(3)->name;
    $show->width(5)->email;
});

$show->row(function (Show\Row $show) {
    $show->width(5)->email_verified_at;
    $show->created_at;
    $show->updated_at;
});

$show->row(function (Show\Row $show) {
    $show->width(3)->field('profile.first_name');
    $show->field('profile.last_name');
    $show->width(3)->field('profile.postcode');
});

效果

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
发起讨论 只看当前版本


halweg
在form A的編輯页,提交后如和新增一条B的记录?
0 个点赞 | 7 个回复 | 问答 | 课程版本 2.x
蒙挚
Dcat Admin 新建和编辑怎么使用不同的页面和处理逻辑
0 个点赞 | 4 个回复 | 问答 | 课程版本 2.x
Mutoulee
Dcat Admin 模型树depth字段疑问
0 个点赞 | 1 个回复 | 问答 | 课程版本 2.x
lezhl821125
Dcat2版本的代码生成器 在laravel 9的版本报错
0 个点赞 | 1 个回复 | 问答 | 课程版本 2.x
esssd
小程序心跳
0 个点赞 | 0 个回复 | 代码速记 | 课程版本 2.x