¿Cómo configuro una configuración predeterminada para GridView en Yii2 sin la fábrica de widgets?

Así es como se ve una vista de cuadrícula en Yii2:

 $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], ... ['class' => 'yii\grid\ActionColumn'], ], ]); ?> 

Quiero cambiar un poco las cuadrículas, así que agrego esta línea:

 tableOptions'=>['class'=>'table table-condensed'], 

Esto funciona genial, pero …

¡Quiero que este sea el valor predeterminado para todas mis cuadrículas!

En Yii 1, esto se vería así:

 'widgetFactory' => array( 'widgets' => array( 'CGridView' => array( 'htmlOptions' => ['class'=>'table table-condensed'] ), ), ), 

En Yii2, sin embargo, no hay fábrica de widgets. En cambio, mirando la configuración principal, esperaría que esto funcione:

 'grid'=>[ 'class' => 'yii\grid\GridView', 'tableOptions'=>['class'=>'table table-condensed'], ], 

Pero no es así Entonces, ¿qué estoy haciendo mal? Cualquier sugerencia muy apreciada. ¡Gracias!

Puede usar Yii :: $ container-> set ().

Por ejemplo:

 // 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', ], ]); 

Para más información: Contenedor de dependency injection y uso práctico

y Yii :: $ objectConfig ha sido eliminado en Yii 2.0.0-beta.

Por ejemplo (Desde la versión 2.0.11):

 $config = [ 'id' => 'basic', // ... 'container' => [ 'definitions' => [ yii\grid\GridView::class => [ 'tableOptions' => [ 'class' => 'table table-condensed', ], ], ], ], ]; 

Para más información: Configuraciones de aplicaciones

Editar: Esta respuesta ya no es aplicable desde Yii 2.0.0-beta.

 Yii::$objectConfig = [ 'yii\grid\GridView' => [ 'tableOptions'=>['class'=>'table table-condensed'] ], ];