Привет,
Недавно мне дали задание обновить наше расширение 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;
Начните с простого выполнения чего-то вроде:
$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()) {
занимает всего два.
Других решений пока нет …