Это то, что выглядит сетка в Yii2:
<?php echo GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], ... ['class' => 'yii\grid\ActionColumn'], ], ]); ?>
Я хочу немного изменить свои решетки, поэтому добавляю эту строку:
tableOptions'=>['class'=>'table table-condensed'],
Это отлично работает, но …
В Yii 1 это будет выглядеть так:
'widgetFactory' => array( 'widgets' => array( 'CGridView' => array( 'htmlOptions' => ['class'=>'table table-condensed'] ), ), ),
В Yii2, однако, нет фабрики виджета. Вместо этого, глядя на основную конфигурацию, я бы ожидал, что это сработает:
'grid'=>[ 'class' => 'yii\grid\GridView', 'tableOptions'=>['class'=>'table table-condensed'], ],
Но это не так. Так что я делаю неправильно? Любые намеки очень ценятся. Благодаря!
Вы можете использовать Yii :: $ container-> set ().
Например:
// add following line in config/web.php and config/console.php require __DIR__ . '/container.php'; // creates a config/container.php file and add following \Yii::$container->set('yii\grid\GridView', [ 'tableOptions' => [ 'class' => 'table table-condensed', ], ]);
Для получения дополнительной информации: Контейнер для инъекций и практическое использование
и Yii :: $ objectConfig был удален в Yii 2.0.0-бета.
Например (начиная с версии 2.0.11):
$config = [ 'id' => 'basic', // ... 'container' => [ 'definitions' => [ yii\grid\GridView::class => [ 'tableOptions' => [ 'class' => 'table table-condensed', ], ], ], ], ];
Для получения дополнительной информации: Конфигурации приложений
Yii::$objectConfig = [ 'yii\grid\GridView' => [ 'tableOptions'=>['class'=>'table table-condensed'] ], ];