Привет всем! Подскажите ответ на такой вопрос - читаю везде мануалы по кохане и нигде не могу найти как правильно сделать - везде в примерах только статью, авторы фильмы и прочее. Я уже понял суть формирования model orm под таблицы и связи с другими таблицами. Но нигде не обсуждается как правильно организовать связь, если у меня есть поле в таблице users поле type_id
в котором я делаю сопоставление с таблицей types['id','name'] через таблицу types_users ['user_id', 'type_id'] и связи has_many.
Я создал в папке моделей модель для таблицы types
<?php
defined('SYSPATH') OR die('No direct access allowed.');
class Model_Type extends ORM {
protected $_table_name = 'types';
protected $_has_many = array(
'users' => array('model' => 'User','through' => 'types_users'),
);
}
И по логике вещей должен ещё создать модель User - и связать со своей - но модель User то уже есть.
Пришлось лезть в папку с modules\orm\classes\model\auth\user\user.php
И там в модели юзера прописывать связь :
protected $_has_many = array(
'user_tokens' => array('model' => 'User_Token'),
'roles' => array('model' => 'Role', 'through' => 'roles_users'),
'types' => array('model' => 'Type','through' => 'types_users'),
);
И впринципе всё завертелось и работает. Но так же нельзя делать, подскажите как мне тогда связать модель юзер и тип, на залазия в папку модулей.
------------------
лирическое отступление - пока писал вопрос в голову пришла мысль
сделать в папке с моделями модель расширующую класс user - и работать уже с помощью нее - что и было сделано - но тут он начал ругаться на то что ключ id он ищет по нзаванию модели + _id - а такого ключа в таблицах нет. Далее привожу код этой модели - подскажите как правильно связать.
-------------------
Пытаюсь сделать через
class Model_Usertype extends Model_User{
protected $_table_name = 'users';
protected $_has_many = array(
'types' => array('model' => 'Type','through' => 'types_users'),
);
}