字段显示

HTML

{tip} Since v1.7.0

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

  1. // 传入字符串
  2. $show->html('<br/>');
  3. // 传入视图
  4. $show->html(view(...));
  5. // 传入闭包
  6. $show->html(function () {
  7. // 获取字段信息
  8. $id = $this->id;
  9. $username = $this->username;
  10. return view(..., ['id' => $id]);
  11. });

分隔线

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

  1. $show->divider();

换行

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

  1. $show->newline();

修改显示内容

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

  1. $show->title()->as(function ($title) {
  2. // 获取当前行的其他字段
  3. $username = $this->username;
  4. return "<{$title}> {$username}";
  5. });
  6. $show->contents()->as(function ($content) {
  7. return "<pre>{$content}</pre>";
  8. });

帮助方法

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

内置显示扩展方法

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

view

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

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

explode

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

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

prepend

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

  1. // 当字段值是一个字符串
  2. $show->email->prepend('mailto:');
  3. // 当字段值是一个数组
  4. $show->arr->prepend('first item');

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

  1. $show->email->prepend(function ($value, $original) {
  2. // $value 是当前字段值
  3. // $original 是当前字段从数据库中查询出来的原始值
  4. // 获取其他字段值
  5. $username = $this->username;
  6. return "[{$username}]";
  7. });

append

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

  1. // 当字段值是一个字符串
  2. $show->email->append('@gmail.com');
  3. // 当字段值是一个数组
  4. $show->arr->append('last item');

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

  1. $show->email->prepend(function ($value, $original) {
  2. // $value 是当前字段值
  3. // $original 是当前字段从数据库中查询出来的原始值
  4. // 获取其他字段值
  5. $username = $this->username;
  6. return "[{$username}]";
  7. });

image

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

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

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

file

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

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

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

link

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

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

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

label

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

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

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

badge

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

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

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

using

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

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

dot

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

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

  1. use Dcat\Admin\Admin;
  2. $show->state
  3. ->using([1 => '未处理', 2 => '已处理', ...])
  4. ->dot(
  5. [
  6. 1 => 'primary',
  7. 2 => 'danger',
  8. 3 => 'success',
  9. 4 => Admin::color()->info(),
  10. ],
  11. 'primary' // 第二个参数为默认值
  12. );

显示文件尺寸

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

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

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