2014-04-19 1 views
0

В моей базе данных таблицы есть таблица с именем «members» вместо «users». Я создал модель для таблицы пользователей, используя следующий кодИзменение имени по умолчанию таблицы «Пользователи» для «членов» при использовании Kohana Auth

class Model_Member extends Model_Auth_User 

При использовании модуля идентификации, следующий код бросает исключение со ссылкой, что таблица «пользователи» не существует. Как я могу искать «члены» таблицы вместо «пользователей». или я должен переименовать мою таблицу в базе данных?

Другие таблицы Auth названы ниже

'member_tokens', '' roles_members и

ответ

0

Это не должно быть большое дело 'ролей', просто перезаписать $_has_many отношения тоже ,

class Model_Member extends Model_Auth_User { 

    /** 
    * A user has many tokens and roles 
    * 
    * @var array Relationhips 
    */ 
    protected $_has_many = array(
     'member_tokens' => array('model' => 'Member_Token'), 
     'roles'  => array('model' => 'Role', 'through' => 'roles_members'), 
    ); 

    public function create_member($values, $expected) 
    { 
     $extra_validation = Model_Member::get_password_validation($values) 
      ->rule('password', 'not_empty'); 

     return $this->values($values, $expected)->create($extra_validation); 
    } 

    public function update_member($values, $expected = NULL) 
    { 
     if (empty($values['password'])) 
     { 
      unset($values['password'], $values['password_confirm']); 
     } 

     // Validation for passwords 
     $extra_validation = Model_Member::get_password_validation($values); 

     return $this->values($values, $expected)->update($extra_validation); 
    } 
} 

И создать модель Member_Token и таблица roles_members (имя поля member_id вместо user_id) соответственно.

class Model_Member_Token extends Model_Auth_User_Token { 

    // Relationships 
    protected $_belongs_to = array(
     'member' => array('model' => 'Member'), 
    ); 

    protected function create_token() 
    { 
     do 
     { 
      $token = sha1(uniqid(Text::random('alnum', 32), TRUE)); 
     } 
     while (ORM::factory('Member_Token', array('token' => $token))->loaded()); 

     return $token; 
    } 
} 

я не тест приведенный выше код, он просто сделал, чтобы дать вам представление о том, как это сделать.

Если вы все еще получаете исключение, отправьте сообщение об исключении.