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

时间:2013-12-08 17:07:57

标签: php yii

大家好,我是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>

1 个答案:

答案 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 ));

        }

    }

?>