字段显示扩展

未匹配的标注
本文档最新版为 2.x,旧版本可能放弃维护,推荐阅读最新版!

详情字段显示扩展

这个功能用来扩展详情字段显示, 在内置的显示方法不满足需求的情况下,可以使用这个功能来实现

首先定义扩展类:

<?php

namespace App\Admin\Extensions\Show;

use Dcat\Admin\Show\AbstractField;

class UnSerialize extends AbstractField
{
    // 这个属性设置为false则不会转义HTML代码
    public $escape = false;

    public function render($arg = '')
    {
        // 返回任意可被渲染的内容
        return unserialize($this->value);
    }
}

然后在app/Admin/bootstrap.php中注册扩展类

use Dcat\Admin\Show\Field;
use App\Admin\Extensions\Show\UnSerialize;

Field::extend('unserialize', UnSerialize::class);

然后在控制器中使用这个扩展

$show->column()->unserialize('xxx');

传入unserialize()方法的参数会按顺序传入UnSerialize::render()方法中。

在父类Dcat\Admin\Show\AbstractField中可以看到几个常用的属性

/**
 * Field value.
 *
 * @var mixed
 */
protected $value;

/**
 * Current field model.
 *
 * @var Fluent
 */
protected $model;

/**
 * If this field show with a border.
 *
 * @var bool
 */
public $border = true;

/**
 * If this field show escaped contents.
 *
 * @var bool
 */
public $escape = true;

其中$value$model分别是当前字段值和当前详情内容的数据,在render()方法中可以用来获取你想要的数据。

$border用来控制当前显示内容是否需要外边框,$escape分别用来设置当前显示内容要不要HTML转义。

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

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
发起讨论 只看当前版本


暂无话题~