Я использую yii-jui, чтобы добавить некоторые элементы пользовательского интерфейса в представления, такие как datePicker. в frontend\config\main-local.php
Я установил следующее, чтобы изменить тему, используемую JqueryUI:
$config = [
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
'cookieValidationKey' => 'gjhgjhghjg87hjh8878878',
],
'assetManager' => [
'bundles' => [
'yii\jui\JuiAsset' => [
'css' =>
['themes/flick/jquery-ui.css'],
],
],
],
],
];
Я попробовал следующее, чтобы переопределить этот элемент конфигурации в методе действий контроллера:
public function actions() {
Yii::$app->components['assetManager'] = [
'bundles' => [
'yii\jui\JuiAsset' => [
'css' =>
['themes/dot-luv/jquery-ui.css'],
],
],
];
return parent::actions();
}
Также я попытался установить значение Yii::$app->components['assetManager']
показано выше посмотреть сам (это частичный вид формы _form.php
) и к Действие который вызывает это представление (updateAction). Тем не менее, все эти попытки не удастся изменить тему. Есть ли в Yii2 такой метод, найденный в CakePHP, как Configure::write($key, $value);
?
Вы должны изменить Yii::$app->assetManager->bundles
(Yii::$app->assetManager
является объектом, а не массивом, например,
Yii::$app->assetManager->bundles = [
'yii\jui\JuiAsset' => [
'css' => ['themes/dot-luv/jquery-ui.css'],
],
];
Или, если вы хотите сохранить конфигурацию других пакетов:
Yii::$app->assetManager->bundles['yii\jui\JuiAsset'] = [
'css' => ['themes/dot-luv/jquery-ui.css'],
];
Вы идете об этом все неправильно, вы хотите изменить тему JUI для одного контроллера только из-за нескольких элементов управления. Вы применяете 2 файла CSS к различным частям веб-сайта, которые также могут изменять стили в макетах. Решение, которое вы нашли, работает, но это невероятно плохая практика.
Если вы хотите изменить только некоторые элементы управления, сделайте это правильно с помощью областей JUI.
Вот несколько ссылок, которые помогут вам:
http://www.filamentgroup.com/lab/using-multiple-jquery-ui-themes-on-a-single-page.html
http://jqueryui.com/download/
Таким образом, вы делаете сайт проще в обслуживании, и вы не создаете большую проблему на будущее, чем решаете сами.