Awan
Awan

Reputation: 18560

How to generate database table models with Gii in Yii?

Problem:

I used gii to generate database table models. So If I have any change in users table structure, I used gii and all my relations and other methods are removed from class. So I need to make backup of class and regenerate class and bring back other methods and relations.

Possible Solution:

I changed my class into two classes like this for a table 'users':

class Users extends UsersMapper {

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

    public function rules() {
       .....
    }

    public function relations() {
       .....
    } 
}


class UsersMapper extends CActiveRecord {

    public function getAllUsers() {
       ......
    }

    public function getBlockedUsers() {
       ......
    }   
}

Question:

Above method is working for me and I am using only Users class everywhere in my code. Is it valid method or there is any problem with this logic. Is there any other method.

Thanks

Upvotes: 0

Views: 2269

Answers (1)

topher
topher

Reputation: 14860

The Giix extension will create a models/Users class and a models/_base/BaseUsers class for your case. The Users class extends the BaseUsers class. Thus only the BaseUsers class needs to be regenerated on changing the database. It also comes with a couple of extra methods that I use quite a lot.

Upvotes: 1

Related Questions