Yii 在GridView中引用模块组件类
我正在将引导加载到模块中:Yii 在GridView中引用模块组件类,yii,yii-extensions,Yii,Yii Extensions,我正在将引导加载到模块中: 'modules'=>array( 'admin'=>array( 'preload'=>array('bootstrap'), 'components'=>array( 'bootstrap'=>array( 'class'=>'ext.bootstrap.components.Bootstrap', '
'modules'=>array(
'admin'=>array(
'preload'=>array('bootstrap'),
'components'=>array(
'bootstrap'=>array(
'class'=>'ext.bootstrap.components.Bootstrap',
'responsiveCss' => true,
),
)
),
),
在GridView中,我尝试创建TbButtonColumn:
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
),
这将返回一个CEException
未定义属性“CWebApplication.bootstrap”
由于它指向主配置应用程序中显然不存在的引导程序,当引导程序加载到模块中时,我如何引用它
我试过:
components.bootstrap.widgets.TbButtonColumn
admin.components.bootstrap.widgets.TbButtonColumn
admin.bootstrap.widgets.TbButtonColumn
罪犯的行踪如下: 将其更改为此将有助于:
if (!($module=Yii::app()->controller->module)){// access as application component (original behavior)
$popover = Yii::app()->bootstrap->popoverSelector;
$tooltip = Yii::app()->bootstrap->tooltipSelector;
}
else {// access as module component
$popover = $module->bootstrap->popoverSelector;
$tooltip = $module->bootstrap->tooltipSelector;
}
TbListView
中也有相同的两行,因此如果使用TbListView
,可以进行相同的更改
更新:似乎已经有了一个解决方案,发布在那里的解决方案看起来更好:
$module = ( Yii::app()->controller->module ? Yii::app()->controller->module : Yii::app() );
$popover = $module->bootstrap->popoverSelector;
$tooltip = $module->bootstrap->tooltipSelector;
$module = ( Yii::app()->controller->module ? Yii::app()->controller->module : Yii::app() );
$popover = $module->bootstrap->popoverSelector;
$tooltip = $module->bootstrap->tooltipSelector;