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 через