2013-04-02 6 views
0

У меня есть вкладки, в которых на одной вкладке я хочу показать форму через вызов виджета.Загрузка формы виджета yii

<div class="tabcontent" id="country2"> <div class="No-Time">No Reviews ! <?php $this->widget('Review');?> </div> </div>

Создал Review модель this.Then я создать компонент

<?php 
class Review extends CWidget 
{ 
public $title='Review'; 
public $visible=true; 
public function run() 
{ 
    if($this->visible) 
    { 
     $this->renderContent(); 
    } 
} 

protected function renderContent() 
{ 

    $merchant_id = Yii::app()->user->id; 
    $model = new Review; 

    $this->performAjaxValidation($model); 
$valid = $model->validate(); 

    if(isset($_POST['ajax']) && $_POST['ajax']==='review-form') 
    { 
      echo CActiveForm::validate($model); 
      Yii::app()->end(); 
    } 
    $this->render('Review',array('model'=>$model)); 
} 

protected function performAjaxValidation($model) 
{ 
     if(isset($_POST['ajax']) && $_POST['ajax']==='review-form') 
     { 
       echo CActiveForm::validate($model); 
       Yii::app()->end(); 
     } 
} 
} 
?> 

Это мой компонент Просмотр файла:

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'review-form', 
'enableAjaxValidation'=>false, 
)); ?> 



<div class="row"> 
    <?php echo $form->labelEx($model,'name'); ?> 
    <?php echo $form->textField($model,'name'); ?> 
    <?php echo $form->error($model,'name'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'email'); ?> 
    <?php echo $form->textField($model,'email'); ?> 
    <?php echo $form->error($model,'email'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'review'); ?> 
    <?php echo $form->textField($model,'review'); ?> 
    <?php echo $form->error($model,'review'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'mobile'); ?> 
    <?php echo $form->textField($model,'mobile'); ?> 
    <?php echo $form->error($model,'mobile'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'status'); ?> 
    <?php echo $form->textField($model,'status'); ?> 
    <?php echo $form->error($model,'status'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'website'); ?> 
    <?php echo $form->textField($model,'website'); ?> 
    <?php echo $form->error($model,'website'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'avtar'); ?> 
    <?php echo $form->textField($model,'avtar'); ?> 
    <?php echo $form->error($model,'avtar'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'date'); ?> 
    <?php echo $form->textField($model,'date'); ?> 
    <?php echo $form->error($model,'date'); ?> 
</div> 


<div class="row buttons"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
</div> 
<input type="hidden" name="merchant" id="merchant-id" /> 
<?php $this->endWidget(); ?> 

</div> 

Имея это возвращение ошибки. Не знаю, почему это произошло.

Review and its behaviors do not have a method or closure named "isAttributeRequired". 
+0

У вас есть модель под названием «Обзор»? – topher

+0

как я уже сказал, у меня есть модель 'Review' –

ответ

2

Вам необходимо переименовать свой компонент в нечто, отличное от Review. Ошибка связана с тем, что строка $model= new Review создает экземпляр компонента Review, а не модель Review.

+0

да ... я забыл об основном Yii ... Thanx, чтобы напомнить мне об этом. –

Смежные вопросы