2011-04-14 3 views
0

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

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

Спасибо,

ответ

0

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

<?php debug($image) ?> 
+0

Wow Ницца функция, но у меня нет доступа к таблице пользователей из таблицы Комментарий:/мне нужно сделать что-то вроде $ this-> User-> найти ($ user_id); но в представлении или в помощнике, но я понятия не имею, как это сделать, поскольку я действительно свежий в CakePHP:/ – canimbenim

0

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

При поиске комментариев сделать это что-то вроде этого

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

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

+0

Да, но у меня должен быть доступ к нему из изображения:/Итак, я получаю такие данные: \t function ($ id = null) { if (! $ id) { \t $ this-> Session-> setFlash (__ ('Недопустимое изображение', true)); $ this-> redirect (array ('action' => 'index')); } $ this-> set ('image', $ this-> Image-> read (null, $ id)); } И имеет отношение hasMany с комментариями, и у меня есть доступ к комментариям - он делает это автоматически. Но я не могу найти решение, как теперь, когда user_id переводит его на имя пользователя: / – canimbenim

0

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

foreach ($images as $image){ 
    pr($image['User']['fname']); 
} 
Смежные вопросы