Вложенный CActiveForm - Yii Framework - PullRequest
0 голосов
/ 01 марта 2012

У меня есть следующий код в моем основном index.php:

<div class="form">
<?php $oForm = $this->beginWidget('CActiveForm', array(
'id' => 'test-form',
'enableAjaxValidation' => false,
'enableClientValidation' => true,
'clientOptions' => array(
    'validateOnSubmit' => true,
),
'focus' => array($oTest, 'title'),
)); ?>

<fieldset>
    <legend>Questions</legend>
    <div id="questions">
        <?php echo $oForm->hiddenField($oTest, '_id');  ?>
        <?php $this->renderPartial('_showQuestions', array('oTest' => $oTest)); ?>
    </div>
</fieldset>

<fieldset>
    <legend>Reviewers</legend>
    <div class="row">
        <?php echo $oForm->labelEx($oTest, 'reviewers'); ?>
        <?php echo $oForm->textField($oTest, 'reviewers', array('size' => 140)); ?>
    </div>
</fieldset>
<?php $this->endWidget(); ?>

и следующий код в частичном представлении _showSuestions

<div class="form">
<?php $oForm = $this->beginWidget('CActiveForm', array(
'id' => 'question-form2',
'enableAjaxValidation' => false,
'enableClientValidation' => true,
'clientOptions' => array(
    'validateOnSubmit' => true,
),
)); ?>
<?php echo $oForm->hiddenField($oTest, '_id'); ?>

<?php
foreach ($oTest->questions as $oQuestion)
{
    var_dump($oQuestion);
}
?>



<?php $this->endWidget(); ?>

Теперь проблема в том, что это не работает. Когда я открываю страницу, тег формы внезапно закрывается после того, как я вызвал мой частичный просмотр. Я предполагаю, что это из-за вложенной CActiveForm? Когда я удаляю внутреннюю CActiveForm, она работает

1 Ответ

1 голос
/ 01 марта 2012

попробуйте изменить имя второй переменной формы (в файле _showQuestions), скажем, от oForm до tForm. есть имя переменной clash. Потому что в конце дня renderPartial - это не что иное, как include.

...