2013-03-22 4 views
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') ] 

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

+0

Что такое SQL-запрос вашего исполнения здесь? Тот, который находится в сообщении об ошибке, выглядит не так. –

+0

Я упал, у вас что-то не так в клиентской модели. можете ли вы добавить свою модель клиента? – Kotzilla

+0

Модель моего клиента довольно проста: – Djoo

ответ

1

Я нашел проблему. Объявление свойства $ _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'), 
); 
0

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

Если у вас есть "Клиент -> has_many -> User", вам нужно has_many through

Смежные вопросы