我在理解如何在主页底部呈现从 Yii 默认创建的联系表单时遇到问题。
我可以使用什么?renderPartial() 或简单的 render(),正确的方法是什么?
<?php $this->renderPartial('contact', array('model'=>$model)); ?>
返回未定义值$model的错误。
我是 Yii 框架的新手,有人可以帮助我吗?
蒂亚
现在我在建立联系人组件时遇到问题
这是我的组件联系表单.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".
这是站点控制器的一部分,其中有联系功能:
/**
* 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}rnReply-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));
}
错误在哪里?
看起来像一个 portlet 的用例。下面是创建用户登录组件的教程;使用联系表格,它应该是类似的:
http://www.yiiframework.com/doc/blog/1.0/en/portlet.login