2013-04-02 38 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

你有一個名爲'Review'的模型嗎? – topher

+0

正如我前面所說,我有模型'審查' –

回答

2

您需要將組件重命名爲Review以外的其他組件。該錯誤是因爲行$model= new Review創建了Review組件的實例而不是Review模型。

+0

是啊...我忘了Yii的基本...感謝提醒我。 –