2012-05-16 24 views
0

我在理解如何呈現默認情況下從我的主頁底部的Yii創建聯繫表單時遇到問題。yii框架在主頁插入聯繫表格

我能用什麼? renderPartial()或簡單地渲染()以及什麼是正確的方法來做到這一點?

<?php $this->renderPartial('contact', array('model'=>$model)); ?>返回未定義值$ model的錯誤。

我是Yii Framework的新手,有人可以幫助我嗎?

TIA


現在我有問題的建築接觸的Portlet

這是我的組件ContactForm.php

<?php 
    Yii::import('zii.widgets.CPortlet'); 
    class ContactForm extends CPortlet 
    { 
     public $title="Contact Us"; 

     protected function renderContent() { 

     $form = new ContactForm; 
      if(isset ($_POST['ContactForm'])) 
      { 
      $form->attributes=$_POST['ContactForm']; 
      if($form->validate()) 
       $this->controller->refresh(); 
     } 
     $this->render('contactForm', array('form'=>$form)); 
     } 
    } 

這是給我的錯誤我contacForm.php觀點:

<?php echo CHtml::beginForm(); ?> 
    <div class="row"> 
    <?php echo CHtml::activeLabel($form,'name'); ?> 
    <br/> 
    <?php echo CHtml::activeTextField($form,'name') ?> 
    <?php echo CHtml::error($form,'name'); ?> 
    </div> 
    <div class="row"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
    </div> 
    <?php echo CHtml::endForm(); ?> 

    CException 

    ContactForm and its behaviors do not have a method or closure named "getAttributeLabel". 

這是有聯繫功能SiteController部分:

/** 
* Displays the contact page 
*/ 
public function actionContact() 
{ 
    $model=new ContactForm; 
    if(isset($_POST['ContactForm'])) 
    { 
     $model->attributes=$_POST['ContactForm']; 
     if($model->validate()) 
     { 
      $headers="From: {$model->email}\r\nReply-To: {$model->email}"; 
      mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers); 
      Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.'); 
      $this->refresh(); 
     } 
    } 
    $this->render('contact',array('model'=>$model)); 
} 

哪裏錯誤?

+0

你能發佈一些相關的代碼?你的控制器,查看你在哪裏附加你的表格等。這將有很大幫助。要渲染部分視圖(例如聯繫表單等),您應該使用'renderPartial()'。分配給變量$ model的是什麼? –

回答