как получить displayField из связанной модели

Я новичок в CakePHP, и у меня возникли проблемы с получением поля отображения связанной модели.

Моя модель примерно такая: - Вопросы, которые имеют много заметок. - Заметки принадлежат Вопросам и пользователям. - У пользователей много заметок.

У пользователей есть поле с именем, которое используется как displayField, когда я просматриваю заметку. Но в методе просмотра вопросов я получаю только user_id. Есть ли способ получить имена пользователей, связанных с заметками определенного вопроса?

Заранее спасибо!!!


person jplfl    schedule 03.08.2012    source источник


Ответы (1)


Вы можете использовать рекурсивный параметр: cakephp docs

$this->Question->recursive=1;
$questions=$this->Question->find('all');
$this->set(compact('questions'));

Тогда на ваш взгляд:

  foreach($question['Note'] as $note)
        {
           foreach($note['User'] as $user){
            echo $user[name];
              }
           }

Код отредактирован.

person L. Sanna    schedule 03.08.2012
comment
Спасибо. Отлично, это было то, что мне нужно. Я действительно добавляю использовать recursive=2 - person jplfl; 03.08.2012
comment
В моем примере есть один цикл укесса. Типы с моего телефона. - person L. Sanna; 03.08.2012
comment
Вам не нужно устанавливать рекурсивное значение 2, поскольку у вас есть прямое отношение Questions that hasMany Notes, поэтому recursive=1 должно быть достаточно. Не рекомендуется использовать recursive=2, особенно для больших наборов данных, так как это происходит медленно из-за большого количества извлекаемых записей. - person Borislav Sabev; 06.08.2012
comment
У меня нет репутации, чтобы принять ответ за то, что я понимаю. - person jplfl; 06.08.2012
comment
Борислав, а я хочу, чтобы user.name и user не имели прямого отношения к Вопросу, или я неправильно вижу? - person jplfl; 06.08.2012