改变yii2中的JuiAsset主题

Change the JuiAsset theme in yii2

我使用了 yii2-jui 的 datePicker,我想更改使用的 Jquery Ui 主题。 我在 myapp\vendor\yiisoft\yii2-jui\JuiAsset.php

中尝试了硬编码更改
class JuiAsset extends AssetBundle
{
    public $sourcePath = '@bower/jquery-ui';
    public $js = [
        'jquery-ui.js',
    ];
    public $css = [
        'themes/THE_OTHER_THEME/jquery-ui.css',
    ];
    public $depends = [
        'yii\web\JqueryAsset',
    ];
}

以下是 _form 视图的片段:

<?php

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\jui\DatePicker;

/* @var $this yii\web\View */
/* @var $model frontend\models\Profile */
/* @var $form yii\widgets\ActiveForm */
?>
...
 <?php $form = ActiveForm::begin(); ?>
 <?= $form->field($model, 'birthdate')->widget(DatePicker::className(), ['clientOptions' => ['dateFormat' => 'yy-mm-dd']]) ?>

但是,这种方式并不是 得到我想要的解决方案。我不知道在我看来我必须做什么 _form.php 才能覆盖 JuiAsset 对象的 属性 $css

不仅这不是 OOP,而且修改核心 Yii 文件也是不好的。

2 个选项:

  1. 执行此操作 https://github.com/yiisoft/yii2/issues/6170 这是您在 google 上搜索时出现的第二个 link。如果你输入问题的确切名称,它是第 4 个,所以你可以在以后尝试
  2. 在第一个之后注册你的新主题(css 文件) 默认注册。最后注册的主题中的 类 将 覆盖默认的。

编辑: 你告诉我你在评论里找东西

  Yii::$app->set('assetManager' , [
                'class' => 'yii\web\AssetManager',
                'bundles' => [
                    'yii\widgets\ActiveFormAsset' => [
                        'js' => [],
                        'depends' => [
                            'yii\adminUi\assetsBundle\AdminUiActiveForm',
                        ],
                    ],
                    'yii\grid\GridViewAsset' => [
                        'depends'   => [
                            'backend\assets\AppAsset'
                        ],
                    ],
                ],
                'linkAssets' => true,
            ]);

有点旧,但您应该将 assetManager 覆盖放在 config/web.php 文件中 'components' 下,如下所示:

$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],

'components' => [
    'assetManager' => [
        'bundles' => [
            'yii\jui\JuiAsset' => [
                'css' => [
                    'themes/flick/jquery-ui.css',
                ]
            ]
        ]
    ],   
],];

我刚刚测试了这个,因为我正在寻找类似的东西,工作得很好