Detail field display expansion

This feature is used to extend the detail field display, in cases where the built-in display method is not sufficient.

First define the extension class:

<?php

namespace App\Admin\Extensions\Show;

use Dcat\Admin\Show\AbstractField;

class UnSerialize extends AbstractField
{
    // Setting this property to false will not escape the HTML code
    public $escape = false;

    public function render($arg = '')
    {
        // Returns any content that can be rendered
        return unserialize($this->value);
    }
}

Then register the extension class in app/Admin/bootstrap.php

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

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

Then use this extension in the controller

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

Parameters passed into the unserialize() method are passed sequentially into the UnSerialize::render() method.

Several common attributes can be found in the parent class 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;

Where $value and $model are the current field value and the current details of the data, in the render() method can be used to get the data you want.

$border is used to control whether the current display needs a border, $escape is used to set the current display to not HTML escape.