Yii-php:在选项卡中显示小部件

Yii-php:在选项卡中显示小部件,php,arrays,yii,tabs,widget,Php,Arrays,Yii,Tabs,Widget,我使用Yii框架已经有一段时间了,我真的玩得很开心,尤其是使用这些小部件,使开发变得更容易。我正在使用Yii bootsrap作为我的扩展。但是我在理解每个小部件的工作原理方面有点困难 我的问题是如何在选项卡中显示小部件(比如TbDetailView)? 我基本上希望以选项卡形式显示内容。然而,其中一些是表格形式…一些是列表、详细视图等 我有一个小部件: $this->widget('bootstrap.widgets.TbDetailView',array( 'data'

我使用Yii框架已经有一段时间了,我真的玩得很开心,尤其是使用这些小部件,使开发变得更容易。我正在使用Yii bootsrap作为我的扩展。但是我在理解每个小部件的工作原理方面有点困难

我的问题是如何在选项卡中显示小部件(比如TbDetailView)? 我基本上希望以选项卡形式显示内容。然而,其中一些是表格形式…一些是列表、详细视图等

我有一个小部件:

$this->widget('bootstrap.widgets.TbDetailView',array(
        'data'=>$model,
        'attributes'=>$attributes1,
        )); 
我想放在一个标签里

$this->widget('bootstrap.widgets.TbWizard', array(
    'tabs' => $tabs,
    'type' => 'tabs', // 'tabs' or 'pills'
    'options' => array(
        'onTabShow' => 'js:function(tab, navigation, index) {
            var $total = navigation.find("li").length;
            var $current = index+1;
            var $percent = ($current/$total) * 100;
            $("#wizard-bar > .bar").css({width:$percent+"%"});
        }',
    ),
我的$tabs数组声明如下:

$tabs = array('studydetails' => 
array(
'id'=>'f1study-create-studydetails', 
'label' => 'Study Details', 
'content' =>//what do i put here?),
...
...);
当我将小部件存储在一个变量中时,比如$table=$this->widget('boots…); 并将$table变量用于'content'参数,我会收到如下错误消息: 类TbDetailView的对象无法转换为字符串


我似乎不太明白它是如何工作的…我需要帮助..谢谢:)

widget()函数采用的第三个参数用于将输出捕获到变量中,就像您正在尝试的那样

从文档中:

public mixed widget(string $className, array $properties=array ( ), boolean $captureOutput=false)

$this->widget('class', array(options), true)

现在,您正在捕获变量中的对象本身,并尝试回显对象。Echo只适用于可以转换为字符串的对象。

widget()函数所采用的第三个参数用于将输出捕获到变量中,就像您正在尝试的那样

从文档中:

public mixed widget(string $className, array $properties=array ( ), boolean $captureOutput=false)

$this->widget('class', array(options), true)
现在,您正在捕获变量中的对象本身,并尝试回显对象。Echo仅适用于可转换为字符串的内容。

您可以在内容中直接使用,如下所示:

'content'=>$this->renderPartial('_tabpage1', [] ,true),
现在,yii将尝试呈现一个名为“\u tabpage1.php”的文件,该文件应与呈现向导的视图位于同一文件夹中。您必须返回renderPartial生成的内容,而不是直接渲染,因此将第3个参数设置为true。

您可以在内容中直接使用,如下所示:

'content'=>$this->renderPartial('_tabpage1', [] ,true),

现在,yii将尝试呈现一个名为“\u tabpage1.php”的文件,该文件应与呈现向导的视图位于同一文件夹中。您必须返回renderPartial生成的内容,而不是直接渲染,因此将第3个参数设置为true。

没错!为什么我没想到这个……哈哈……谢谢!:)很好,没错!为什么我没想到这个……哈哈……谢谢!:)创造奇迹