如何在没有小部件工厂的情况下为 Yii2 中的 GridView 设置默认配置?

2024-02-29

这是 Yii2 中 gridview 的样子:

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

了解更多信息:依赖注入容器 http://www.yiiframework.com/doc-2.0/guide-concept-di-container.html and 实际使用 http://www.yiiframework.com/doc-2.0/guide-concept-di-container.html#practical-usage

Yii::$objectConfig 已在 Yii 2.0.0-beta 中删除。

例如(自版本 2.0.11 起):

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

了解更多信息:应用程序配置 http://www.yiiframework.com/doc-2.0/guide-concept-configurations.html#application-configurations

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有小部件工厂的情况下为 Yii2 中的 GridView 设置默认配置? 的相关文章

随机推荐