2013-12-08 70 views
0

Hello guys我是Yii框架的新手。在我使用CodeIgniter作爲我的框架之前。現在我決定切換到Yii。由於其驚人的功能。但我很難研究它。現在我正在從頭開始創建一個簡單的表單。我沒有使用gii工具。 我的問題是如果我包含一個文本框輸出是一個例外。這裏是。在Yii框架中創建簡單表單時出錯

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> 

回答

2
Property "ContactForm.username" is not defined. 

這意味着您的ContactForm沒有用戶名屬性。所以你必須在你的ContactForm中定義用戶名屬性。

class Blog extends CFormModel { 

     public $username; 

     public function rules() { 

      return array (

       array ('username', 'required'), 

      ); 

     } 

    } 

正如我所看到的,您在您的博客模型中定義了username

順便說一句,我想你想使用Blog模型來代替ContactForm中的actionIndex():

<?php 

    class BlogController extends Controller { 

     public function actionIndex() { 

      $model = new Blog; 

      $this->render('index', array('model' => $model)); 

     } 

    } 

?> 
+0

好,謝謝。它現在有效。 :) – Jerielle

+0

@Jerielle:如果有幫助,請接受答案。謝謝。 – secretlm