在Yii框架中创建简单表单时出错


Error in creating a simple form in Yii framework

大家好,我是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 ));
        }
    }
?>