Расширение колонок

Работая с однотипными данными, часто требуется и обрабатывать их одинаковым образом, для того, что бы не дублировать код в слоях имеется возможность расширять класс TD собственными методами, для этого необходимо в сервис-провайдере зарегистрировать функцию замыкания.

Пример регистрации:

// AppServiceProvider.php
TD::macro('bool', function () {

    $column = $this->column;

    $this->render(function ($datum) use ($column) {
        return view('bool',[
            'bool' => $datum->$column
        ]);
    });

    return $this;
});

Пример шаблона:

// bool.blade.php

@if($bool)
    <i class="icon-check text-success"></i>
@else
    <i class="icon-close text-danger"></i>
@endif

Пример использования:

public function grid(): array
{
    return [
        TD::set('status')->bool(),
    ];
}