2013-06-11 105 views
0

中獲取我在兩個表(聯繫人和引號)之間建立了關係,並且我試圖從聯繫人引用控制器訪問信息。因此,在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等正在通過陣列。

最終,我希望用戶能夠從下拉列表中選擇聯繫人姓名,然後,聯繫人表中的詳細信息將填充到「行情」視圖中。

任何幫助表示讚賞。

+1

btw'pr($ contacts);'是一個內建的php函數 –

回答

2

$this->Quote->Contact->find('list',將只呈現1d陣列,將其更改爲all而不是list。你可能也想看看containable behaviors

BTW pr($contacts);被內置在PHP

1

的便利功能如果你正在尋找讓所有列出的領域,爲什麼不使用查找(「全部」)。具有2個字段參數的查找列表將返回具有key->值的數組,而添加第三個字段將對結果進行分組。見文檔find options

$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>'; 
相關問題