6

データベース テーブルを持たない yii モデルを作成しましたが、問題は、ビュー ファイル内でモデル関数を呼び出そうとすると、認識されないことです。

class blah extends CActiveRecord()

    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }

    public function tableName()
    {
        return '{{UNVETTED}}';
    }

    public function sayHello()
    { 
         echo "hello world";
    }
}

ビューの中で私はこのようにそれを呼び出しました

blah::model()->sayHello()、そして死の白いページを手に入れたのはなぜですか?

4

2 に答える 2

10

テーブルなしで Yii モデルを作成したい場合は、 を使用して作成できます CFormModel。モデル変数、そのルール、および属性ラベルを定義しました。

CFormModel を使用して作成されたパスワード変更フォームのコード例。

<?php

class ChangePassword extends CFormModel 
{

    public $password;
    public $verifyPassword;
    public $currentPassword;    

    public function rules() {

            $rules[] = array('currentPassword', 'safe');
            $rules[] = array('currentPassword', 'required');            
            $rules[] = array('password, verifyPassword', 'required');
            $rules[] = array('verifyPassword', 'compare', 'compareAttribute' =>'password', 'message' => 'Retyped password is incorrect');

            return $rules;
    }

    /**
     * Declares attribute labels.
     */
    public function attributeLabels() {
            return array(
                    'password'=>'New password',
                    'verifyPassword'=>'Retype your new password',
                    'currentPassword'=>'Your actual password',
            );
    }

}
于 2012-08-24T05:25:41.890 に答える
8

CActiveRecordモデルがデータベース テーブルに関連付けられていない場合は、使用する必要はありません。CModelまたはCFormModel代わりに使用

ところで、これを修正してください:

class blah extends CActiveRecord()

class blah extends CActiveRecord {

それがあなたが白いページを手に入れている理由だと思います。

于 2012-08-24T03:58:17.063 に答える