如何创建没有数据库表的yii模型

how to create a yii model without a database table


如何创建没有数据库表的yii模型 已获得2个解决方法 2020-08-18 18:08:52 php

我创建了一个没有数据库表的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模型 方法1

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

}

如何创建没有数据库表的yii模型 方法2

如果您的模型没有关联数据库表,则不需要使用 CActiveRecord .使用 CModel CFormModel

顺便说一句,解决这个问题:

class blah extends CActiveRecord()

class blah extends CActiveRecord {

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


.htaccess .net .net-core 2d 3d 3d-printing ab-initio abp abstract-syntax-tree actions-on-google actionscript-3 active-directory activemq activemq-artemis acumatica adobe-xd aframe ag-grid agora.io air airflow ajax akka alert alexa algorithm alignment allure amadeus amazon-cloudformation