2013-07-01 2 views
0

Используя Kohana 3, у меня есть таблица User с полем, которое ссылается на поле из другой таблицы в базе данных, однако я не могу найти, где запрашиваются данные пользователя, поэтому я могу добавьте ->with, чтобы я мог использовать его на всем сайте.Добавить данные таблицы зарегистрированному пользователю

Я все еще копаться и эти куски, которые я нашел до сих пор:

в: Модули/ОРМ/классы/Кохана/Auth/ORM.php

public function get_user($default = NULL) 

он называет parent::get_user($default); так, когда я смотрю на его родителей: modules/auth/classes/Kohana/Auth.php:74, он это работает:

return $this->_session->get($this->_config['session_key'], $default); 

$this->_session создается с помощью:

Session::instance($this->_config['session_type']); 

который я отслеживал до: system/classes/Kohana/Session.php.

Думаю, я добрался до тупика.


Я также попытался сделать поиск для ORM::factory('User'), однако, он используется только при входе в систему, насколько я могу судить.

get_user() возвращает объект Model_User, но я не совсем уверен, как работать с этим, чтобы помочь мне.

ответ

0

Проблема возникла из-за того, что при входе в систему данные кэшируются и не вытягиваются снова, пока вы не перейдете в систему. Таким образом, таблицы должны быть объединены в методы входа.

0

В модулях/авт/классы/модель/авт/user.php (уф) есть на линии 86 в моем возможно устаревшей Кохана 3 установки:

// Attempt to load the user 
$this->where($fieldname, '=', $array['username'])->find(); 

Учитывая, что Model_Auth_User расширяет ОРМ это, кажется, где он запрашивает db для пользователя и, надеюсь, там, где вы можете добавить свои требования.

0

Возможно, вы используете _load_with и всегда загружаете другую таблицу вместе с пользователем?

class Model_User extends Model_Auth_User 
{ 

    protected $_table_columns = array(
     'id' => '', 
     'username' => '', 
     'email' => '', 
     'password' => '', 
     'logins' => '', 
     'last_login' => '', 
     'some_id' => '', 
    ); 

    protected $_belongs_to = array(
     'some_model' => array('foreign_key' => 'some_id'), 
    ); 

    protected $_load_with = array(
     'some_model', 
    );