字段显示

未匹配的标注

字段显示#

HTML#

Since v1.7.0

通过 html 方法可以在详情页插入一段不显示 labelHTML 代码

// 传入字符串
$show->html('<br/>');

// 传入视图
$show->html(view(...));

// 传入闭包
$show->html(function () {
    // 获取字段信息
    $id = $this->id;
    $username = $this->username;

    return view(..., ['id' => $id]);
});

分隔线#

如果要在字段之间添加一条分隔线:

$show->divider();

换行#

如果要在字段之间使用换行:

$show->newline();

修改显示内容#

用下面的方法修改显示内容

$show->title()->as(function ($title) {
    // 获取当前行的其他字段
    $username = $this->username;

    return "<{$title}> {$username}";
});

$show->contents()->as(function ($content) {
    return "<pre>{$content}</pre>";
});

帮助方法#

帮助方法与数据表格字段帮助方法使用一致,可参考帮助方法

内置显示扩展方法#

下面是通过 as 方法内置实现的几个常用的显示样式:

view#

view 方法可以引入一个视图文件。

// 模板中接收以下三个变量:
// name 字段名称
// value 字段值
// model 当前行数据
$show->content->view('admin.fields.content');

explode#

explode 方法可以把字符串分割为数组。

$show->tag->explode()->label();

// 可以指定分隔符,默认","
$show->tag->explode('|')->label();

prepend#

prepend 方法用于给 stringarray 类型的值前面插入内容。

// 当字段值是一个字符串
$show->email->prepend('mailto:');

// 当字段值是一个数组
$show->arr->prepend('first item');

v1.2.5 版本开始,prepend 方法允许传入闭包参数

$show->email->prepend(function ($value, $original) {
    // $value 是当前字段值
    // $original 是当前字段从数据库中查询出来的原始值

    // 获取其他字段值
    $username = $this->username;

    return "[{$username}]";
});

append#

append 方法用于给 stringarray 类型的值后面插入内容。

// 当字段值是一个字符串
$show->email->append('@gmail.com');

// 当字段值是一个数组
$show->arr->append('last item');

v1.2.5 版本开始,append 方法允许传入闭包参数

$show->email->prepend(function ($value, $original) {
    // $value 是当前字段值
    // $original 是当前字段从数据库中查询出来的原始值

    // 获取其他字段值
    $username = $this->username;

    return "[{$username}]";
});

image#

字段 avatar 的内容是图片的路径或者 url,可以将它显示为图片:

$show->avatar()->image();

image () 方法的参数参考 Field::image ()

file#

字段 document 的内容是文件的路径或者 url,可以将它显示为文件:

$show->avatar()->file();

file () 方法的参数参考 Field::file ()

link#

字段 homepage 的内容是 url 链接,可以将它显示为 HTML 链接:

$show->homepage()->link();

link () 方法的参数参考 Field::link ()

label#

将字段 tag 的内容显示为 label:

$show->tag()->label();

label () 方法的参数参考 Field::label ()

badge#

将字段 rate 的内容显示为 badge:

$show->rate()->badge();

badge () 方法的参数参考 Field::badge ()

using#

如果字段 gender 的取值为 f、m,分别需要用女、男来显示

$show->gender()->using(['f' => '女', 'm' => '男']);

dot#

通过 dot 方法可以在列文字前面加上一个带颜色的圆点

Since v1.2.5 支持 Dcat\Admin\Color 类中内置的所有颜色

use Dcat\Admin\Admin;

$show->state
    ->using([1 => '未处理', 2 => '已处理', ...])
    ->dot(
        [
            1 => 'primary',
            2 => 'danger',
            3 => 'success',
            4 => Admin::color()->info(),
        ], 
        'primary' // 第二个参数为默认值
    );

显示文件尺寸#

如果字段数据是表示文件大小的字节数,可以通过调用 filezise 方法来显示更有可读性的文字

$show->field('file_size')->filesize();

这样数值 199812019 将会显示为 190.56 MB

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

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:2
讨论数量: 0
发起讨论 查看所有版本


暂无话题~