Есть actioncolumn в yii2, переназначаю эти кнопки, но учитывая что контроллеров предостаточно, и не повторять код из переназначения, как перенести их в отдельный компонент? Сам код
['class' => 'yii\grid\ActionColumn',
'template' => '{view} {update} {delete}',
'buttons' => [
'view' => function ($url, $model, $key) {
return Html::a('<span class="fa fa-eye"></span>', $url, [
'title' => Yii::t('backend', 'View'),
'class' => 'btn btn-success btn-sm',
]);
},
'update' => function ($url, $model, $key) {
return Html::a('<span class="fa fa-pencil-square-o"></span>', $url, [
'title' => Yii::t('backend', 'Update'),
'class' => 'btn btn-primary btn-sm',
]);
},
'delete' => function ($url, $model, $key) {
return Html::a('<span class="fa fa-trash"></span>', $url, [
'title' => Yii::t('backend', 'Delete'),
'data-confirm' => 'Are you sure you want to delete?',
'class' => 'btn btn-danger btn-sm',
]);
},
],
],
Пробую через
<?php
namespace common\components;
use \yii\grid\Actioncolumn;
use \yii\helpers\Html;
class ActionButton extends ActionColumn {
function init() {
parent::init();
$this->initDefaultButtons();
}
protected function initDefaultButtons()
{
$this->buttons['view'] = function ($url, $model, $key) {
return Html::a('<span class="fa fa-eye"></span>', $url, [
'title' => Yii::t('backend', 'View'),
'class' => 'btn btn-success btn-sm',
]);
};
}
}
но получается какая-то фигня. Ошибка на ошибке.
Как вообще по уму переносить дублирующий код в другие файлы?