大家好,我是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>
Property "ContactForm.username" is not defined.
这意味着您的ContactForm没有username属性。因此,您必须在ContactForm
中定义username属性。
class Blog extends CFormModel {
public $username;
public function rules() {
return array (
array ( 'username', 'required' ),
);
}
}
正如我所看到的,您在博客模型中定义了username
。
顺便说一句,我想你想在actionIndex():中使用Blog
模型而不是ContactForm
<?php
class BlogController extends Controller {
public function actionIndex() {
$model = new Blog;
$this->render('index', array( 'model' => $model ));
}
}
?>