0

Kohana 3 を使用して、データベース内の別のテーブルのフィールドを参照するフィールドを持つユーザー テーブルがありますが、ユーザー データが要求されている場所が見つからないため、ユーザー データを追加し->withて、全体で使用できるようにします。サイト。

私はまだ掘り下げていますが、これまでに見つけたピースは次のとおりです。

in: modules/orm/classes/Kohana/Auth/ORM.php

public function get_user($default = NULL)

それを呼び出すと、それはparent::get_user($default); parent: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 のオブジェクトを返しますが、私を助けるためにそれをどのように扱うかはよくわかりません。

4

3 に答える 3

0

modules/auth/classes/model/auth/user.php (phew) には、おそらく古い Kohana 3 インストールの 86 行目にあります。

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

Model_Auth_User が ORM を拡張することを考えると、これはユーザーのデータベースを照会する場所であり、できれば要件を追加できる場所のようです。

于 2013-07-01T23:20:57.857 に答える
0

この問題は、ログインするとデータがキャッシュされ、再ログインするまでデータが取り出されないことに起因していました。そのため、ログイン方法でテーブルを結合する必要がありました。

于 2013-07-11T04:24:43.023 に答える
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',
    );
于 2013-07-02T11:21:37.523 に答える