1

クエリの結果で SELECT アイテムを作成したいのですが、これをビューに持っています:

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

値を個人の 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>

なぜですか?

4

2 に答える 2

1

それは既知の問題です。私が見つけた最も簡単な解決策 (v1.2 用) はこちらです - http://nuts-and-bolts-of-cakephp.com/2008/09/04/findlist-with-three-or-combined -フィールド/ .

v1.3 を使用している場合は、上部にクックブックへのリンクが表示されます。

于 2010-10-15T10:20:52.530 に答える
1

CakePHP 1.3 では、モデルに仮想フィールドがあります。このリンクを確認してください

于 2010-10-15T13:15:16.063 に答える