大家好,我是Yii框架的新手。在我使用CodeIgniter作为我的框架之前。现在我决定改用Yii。因为它的惊人功能。但我很难研究它。现在我从头开始创建一个简单的表单。我没有使用gii工具。 我的问题是,如果我包含一个文本框,输出是一个例外。在这里。
CException
Property "ContactForm.username" is not defined.
C:\xampp\htdocs\yii\framework\web\helpers\CHtml.php(2529)
我不知道这是什么意思。我想我需要声明输入的名称。但是如何?
这是我的代码
控制器
<?php
class BlogController extends Controller {
public function actionIndex() {
$model = new ContactForm;
$this->render('index', array( 'model' => $model ));
}
}
?>
模型
<?php
class Blog extends CFormModel {
public $username;
public function rules() {
return array (
array ( 'username', 'required' ),
);
}
}
?>
查看
<?php
$this->breadcrumbs = array (
'Blog',
);
?>
<div class="form">
<?php echo CHtml::beginForm(); ?>
<?php echo CHtml::errorSummary( $model ); ?>
<div class="row">
<?php echo CHtml::activeLabel( $model, 'username' ); ?>
<?php echo CHtml::activeTextField($model,'username') ?> <!-- ERROR IF I INCLUDE THE TEXTBOX. WHY? -->
</div>
<?php echo Chtml::endForm(); ?>
</div>
答案 0 :(得分:2)
Property "ContactForm.username" is not defined.
这表示您的ContactForm没有用户名属性。因此,您必须在ContactForm
。
class Blog extends CFormModel {
public $username;
public function rules() {
return array (
array ( 'username', 'required' ),
);
}
}
如我所见,您在Blog模型中定义了username
。
顺便说一句,我想你想在actionIndex()中使用Blog
模型而不是ContactForm
:
<?php
class BlogController extends Controller {
public function actionIndex() {
$model = new Blog;
$this->render('index', array( 'model' => $model ));
}
}
?>