проблема с помощником формы и списком - PullRequest
1 голос
/ 15 октября 2010

Я хочу сделать элемент SELECT с результатом запроса, у меня это в представлении:

echo $this->Form->input('person_id');

Я хочу, чтобы значение было идентификатором человека и отображало объединение имени и фамилии, например:

<select id="ResearchGroupPersonId" name="data[ResearchGroup][person_id]">
    <option value="2">lastname2 firstname2</option>
    <option value="1">lastname1 firstname1</option>
</select>

Я пытался это контроллер без успеха

$people = $this->ResearchGroup->Person->find('list', 
    array(
        'fields' => array('Person.id', 'CONCAT (Person.lastname, " ", Person.firstname) AS fullname'), 
        'order' => array('Person.lastname'),
        )
    );

журнал sql показывает, что строки получены, они просто не отображаются. Это работает без объединения, это:

    $people = $this->ResearchGroup->Person->find('list', 
    array(
        'fields' => array('Person.id', 'Person.lastname'), 
        'order' => array('Person.lastname'),
        )
    );

дает это

<select id="ResearchGroupPersonId" name="data[ResearchGroup][person_id]">
    <option value="2">Doe</option>
    <option value="1">Ray</option>
</select>

Почему это?

Ответы [ 2 ]

1 голос
/ 15 октября 2010

Для CakePHP 1.3 в модели есть виртуальные поля. Проверьте эту ссылку

1 голос
/ 15 октября 2010

Это известная проблема.Самое простое решение, которое я нашел и которое я использую (для v1.2), здесь - http://nuts -and-bolts-of-cakephp.com / 2008/09/04 / findlist-with-three-or-комбинированные поля / .

Вы увидите ссылку на кулинарную книгу вверху, если вы используете v1.3.

...