我在理解如何呈現默認情況下從我的主頁底部的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));
}
哪裏錯誤?
你能發佈一些相關的代碼?你的控制器,查看你在哪裏附加你的表格等。這將有很大幫助。要渲染部分視圖(例如聯繫表單等),您應該使用'renderPartial()'。分配給變量$ model的是什麼? –