Kohana 3.3 $_has_many ошибка

Я пытаюсь настроить отношения один-ко-многим между Пользователем и его Клиентами. Я могу получить доступ к одному клиенту, когда я устанавливаю свою модель следующим образом:

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') ]

Не могу понять, что не так..

2 ответа

Решение

Я нашел проблему. Объявление свойства $_has_many в моей модели User переписывало то же свойство в исходном файле Kohana, который содержал информацию о ролях и токенах.

Решено путем копирования значений из Model_Auth_User Kohana и добавления моего свойства:

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'),
);

Как это выглядит в клиенте? Если у вас есть "Клиент -> has_one -> Пользователь", это не должно быть проблемой.

Если у вас есть "Клиент -> has_many -> Пользователь", вам нужно через has_many через

Другие вопросы по тегам