1

我正在尝试在用户和他的客户之间建立一对多的关系。当我这样设置模型时,我可以访问单个客户端:

class Model_User extends Model_Auth_User {
    protected $_has_one = array(
        'client' => array(
            'model' => 'Client',
            'foreign_key' => 'user_id')
    );
    [...]

但是当我尝试切换到 $_has_many 时:

class Model_User extends Model_Auth_User {
    protected $_has_many = array(
        'clients' => array(
            'model' => 'Client',
            'foreign_key' => 'user_id')
    );
    [...]

我收到以下错误:

Database_Exception [ 1103 ]: Incorrect table name '' [ SELECT COUNT(*) AS `records_found` FROM `` WHERE = '74' AND IN ('4') ]

想不通怎么回事。。

4

2 回答 2

1

我发现了问题。在我的用户模型中声明 $_has_many 属性会覆盖 Kohana 源文件中的相同属性,其中包含角色和令牌信息。

通过复制 Kohana 的 Model_Auth_User 中的值并添加我的属性来解决:

protected $_has_many = array(
    'user_tokens' => array('model' => 'User_Token'),
    'roles'       => array('model' => 'Role', 'through' => 'roles_users'),
    'clients'     => array('model' => 'Client', 'foreign_key' => 'user_id'),
);
于 2013-03-29T21:24:18.950 回答
0

它在客户端中的外观如何?如果你有“Client -> has_one -> User”,这应该不是问题。

如果你有“Client -> has_many -> User”,你需要has_many through

于 2013-03-25T16:21:40.023 回答