0

2 つのテーブル (連絡先と見積もり) の間に関係が設定されており、連絡先見積もりコントローラーからの情報にアクセスしようとしています。したがって、QuoteController.php には次のコードがあります。

 $contacts = $this->Quote->Contact->find('list', array('fields' => array(               
                    'Contact.id',
                    'Contact.name',
                    'Contact.company',              
                    'Contact.mainAddressLine2',
                    'Contact.mainAddressTown',
                    'Contact.mainAddressPostCode',
                    'Contact.mainAddressCountry'
            )));
            $this->set(compact('contacts'));

            echo '<pre>';
                print_r($contacts);
            echo '</pre>';

print_r ステートメントからの出力は次のとおりです。

Array
(
    [1] => Joe Bloggs
    [21] => Jane Doe
)

ご覧のとおり、ID と名前のみを取得しています。何らかの理由で会社、mainAddressLine2 などが配列に含まれています。

最終的には、ユーザーがドロップダウン リストから連絡先名を選択できるようにしたいと考えています。これにより、連絡先テーブルの詳細が [見積もり] ビューに表示されます。

どんな助けでも感謝します。

4

2 に答える 2

2

$this->Quote->Contact->find('list',は 1 次元配列のみをレンダリングし、all代わりに に変更しlistます。また、包含可能な動作を調べることもできます。

ところでpr($contacts);、phpの組み込みの便利な機能です

于 2013-06-11T20:24:38.643 に答える
1

リストされているすべてのフィールドを取得する場合は、find('all') を使用してください。2 つのフィールド パラメータを持つ検索リストは、key->value を持つ配列を返し、3 番目のフィールドを追加すると結果がグループ化されます。検索オプションに関するドキュメントを参照してください

$contacts = $this->Quote->Contact->find('all', array('fields' => array(               
                    'Contact.id',
                    'Contact.name',
                    'Contact.company',              
                    'Contact.mainAddressLine2',
                    'Contact.mainAddressTown',
                    'Contact.mainAddressPostCode',
                    'Contact.mainAddressCountry'
            )));
            $this->set(compact('contacts'));

            echo '<pre>';
                print_r($contacts);
            echo '</pre>';
于 2013-06-11T20:48:19.607 に答える