В моей БД есть 3 таблицы пользователей:
Users
users_twitter
users_web
Users является родителем users_twitter
и users_web
.
А затем еще одна таблица для комментариев.Оба типа пользователей могут комментировать.
Итак, когда я хочу показать комментарии, мне нужно получить информацию об авторе каждого комментария.Для этого я использую переменную $belongsTo
на /Model/Comment.php
следующим образом:
public $belongsTo = array(
'users' => array(
'foreignKey' => 'idUser'
)
);
В Controller / CommentController, когда я делаю это:
public function index($idPost) {
$this->Comment->recursive = 0;
return $this->Comment->find('all');
}
Iполучить массив такого типа:
[0] => Array
(
[Comment] => Array
(
[id] => 1
[idPost] => 441
[idUser] => 387371023
[comment] => hello word
[created] => 2012-03-01 00:00:00
)
[User] => Array
(
[id] => 1
[username] => myname
)
)
И что мне нужно, так это получить дополнительную информацию, один из подтипов пользователей, в зависимости от наличия идентификатора в таблицах подтипов.
Если бы это был идентификатор таблицы user_web, я бы хотел получить это:
[0] => Array
(
[Comment] => Array
(
[id] => 1
[idPost] => 441
[idUser] => 387371023
[comment] => hello word
[created] => 2012-03-01 00:00:00
)
[User] => Array
(
[id] => 1
[username] => myname
[users_web] => Array
(
[id] => 1
[username] => myName
[password] => XXXXX
[verified] => 1
[created] => 1
)
)
Знаете ли вы, возможно ли это с CakePHP?Насколько я знаю, с $hasOne
я получаю только один уровень больше, мне нужно два.