CakePHP как получить значение из другой таблицы - PullRequest
0 голосов
/ 14 апреля 2011

У меня проблема в том, что у меня есть 3 таблицы: Пользователи, Изображения (user_id), Комментарии (user_id, image_id),

Теперь из представления «Изображение» я хочу «перевести» user_id из таблицы «Комментарий». Как это сделать? Я пытался создать помощника, но помощник вида не видит переменную $ this-> tableName, или у меня там была ошибка. Я знаю, что у меня есть доступ к таблице комментариев в представлении изображения ($ image ['Comment']), поэтому у меня есть user_id, который я хочу преобразовать в имя пользователя, но как это сделать?

Спасибо

Ответы [ 3 ]

0 голосов
/ 14 апреля 2011

Посмотрите на сдерживаемое поведение. http://book.cakephp.org/view/1323/Containable

Когда вы ищете комментарии, делайте что-то вроде этого

$this->Comment->find('all',array('contain'=>'User'));

Это вернет ваши комментарии вместе с нужными вам данными пользователя. Передайте эту информацию в ваше представление, а не пытайтесь получить ее в своем представлении.

0 голосов
/ 17 апреля 2011

У вас должен быть доступ к таблице пользователей и комментариев. Я предпочитаю pr($images);, может быть легче читать, но там должны быть данные пользователя.

foreach ($images as $image){
    pr($image['User']['fname']);
}
0 голосов
/ 14 апреля 2011

Я не уверен в этом, но вы можете обнаружить, что изменение рекурсивной модели сделает это доступным. Отладка массива $ image в вашем представлении, чтобы убедиться:

<?php debug($image) ?>
...