index.php 2.44 KB
<?php
    
    use yii\helpers\Html;
    use kartik\grid\GridView;
    
    /**
     * @var $this         yii\web\View
     * @var $searchModel  common\modules\product\models\CategorySearch
     * @var $dataProvider yii\data\ActiveDataProvider
     */
    $this->title = Yii::t('product', 'Categories');
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="category-index">
    
    <h1><?= Html::encode($this->title) ?></h1>
    
    <p>
        <?= Html::a(Yii::t('product', 'Create Category'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?>
    </p>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'columns'      => [
            [ 'class' => 'yii\grid\SerialColumn' ],
            [
                'label'   => Yii::t('product', 'Name'),
                'content' => function($data) {
                    $op = [];
                    foreach($data->getParents()
                                 ->all() as $parent) {
                        $op[] = $parent->name;
                    }
                    $op[] = $data->name;
                    return implode('&nbsp;&rarr;&nbsp;', $op);
                },
            ],
            [
                'class'      => 'yii\grid\ActionColumn',
                'template'   => '{view} {update} {delete}',
                'urlCreator' => function($action, $model, $key, $index) {
                    switch($action) {
                        case 'view':
                            return \yii\helpers\Url::to([
                                'category/view',
                                'id' => $model->category_id,
                            ]);
                            break;
                        case 'update':
                            return \yii\helpers\Url::to([
                                'category/update',
                                'id' => $model->category_id,
                            ]);
                            break;
                        case 'delete':
                            return \yii\helpers\Url::to([
                                'category/delete',
                                'id' => $model->category_id,
                            ]);
                            break;
                    }
                    return '';
                },
            ],
        ],
        'panel'        => [
            'type' => 'success',
        ],
    ]); ?>
</div>