如何在没有数据库表的情况下创建yii模型


how to create a yii model without a database table

我创建了一个没有数据库表的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(),然后我得到了死亡的白色页面,为什么?

如果要创建没有表的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',
            );
    }
}

如果您的模型与数据库表没有关联,则不需要使用CActiveRecord。使用CModelCFormModel代替

BTW,修复这个:

class blah extends CActiveRecord()

class blah extends CActiveRecord {

我想这就是为什么你会得到一个白色的页面。