从TbForm迁移到TbActiveForm yiibooster

时间:2015-10-30 12:49:15

标签: php yii yii-booster active-form

您好,

我最近获得了更新yiibooster扩展的任务。

我遇到的问题是这个tbform代码不再适用于此版本的yiibooster(整个tbform功能似乎已被删除)

 $sessionForm = new SessionSelectionForm();

         $items = $dataModel->getDynamicFormSessionsConfig($sessionForm);

         $form = TbForm::createForm(
                        array(
                    'title' => 'Session Registration',
                    'enableClientValidation' => true,
                    'enableAjaxValidation' => false, // Just keep this to false
                    'layout' => TbHtml::FORM_LAYOUT_HORIZONTAL,
                    'elements' => $items,
                     'buttons' => array(
                         'reset' => array(
                             'type' => 'reset',
                             'label' => 'Reset',
                         ),
                         'submit' => array(
                             'type' => 'submit',
                             'label' => 'Next',
                             'layoutType' => 'primary'
                         ),
 //                        'cancel' => array(
 //                            'type' => 'submit',
 //                            'label' => 'Cancel',
 //                            'layoutType' => 'warning'
 //                        ),
                     ),
                         ), null, array(
                     'htmlOptions' => array('class' => 'well'),
                     'type' => 'horizontal',
                         ), $sessionForm
         );
         return $form;

我想重建这个功能就好了但是我实际上没有运气。 (未定义tbactiveform.0)

$sessionForm = new SessionSelectionForm();

         $items = $dataModel->getDynamicFormSessionsConfig($sessionForm);

$form = $this->beginWidget(
                    'booster.widgets.TbActiveForm',
                        array(
                            // 'title' => 'Session Registration',
                            'enableClientValidation' => true,
                            'enableAjaxValidation' => false, // Just keep this to false
                            // 'layout' => TbHtml::FORM_LAYOUT_HORIZONTAL,
                            'htmlOptions' => array(
                                    'type' => 'horizontal',
                                    'data' => $items,
                                    ),
                                    null,  $sessionForm
                            )
                        );                                          // 'elements' => $items,
                        $this->widget(
                             'booster.widgets.TbButtonGroup',
                                array(
                                    'buttons' => array(
                                        array('label' => 'reset', 'buttonType' => 'reset'),
                                        array('label' => 'next', 'buttonType' => 'submit'),
                                    ),
                                )                
                        );
            $this->endWidget();
            return $form;

1 个答案:

答案 0 :(得分:0)

首先简单地执行以下操作:

$form = $this->beginWidget( 'booster.widgets.TbActiveForm', array(
        'id'                    => 'contents-form',
        'enableAjaxValidation'  => true,
    ) );

从这里建立。如果上面的代码给你错误让我知道,我相信我们可以解决它:)。另请注意,您在beginWidget函数中提供了太多参数:

$form = $this->beginWidget(
                'booster.widgets.TbActiveForm',
                    array(
                        // 'title' => 'Session Registration',
                        'enableClientValidation' => true,
                        'enableAjaxValidation' => false, // Just keep this to false
                        // 'layout' => TbHtml::FORM_LAYOUT_HORIZONTAL,
                        'htmlOptions' => array(
                                'type' => 'horizontal',
                                'data' => $items,
                                ),
                                null,  $sessionForm
                        )
                    );       

这里你有4个参数,而

public function beginWidget($className,$properties=array()) {

只需要两个。