2012-06-29 75 views
2

對於令人困惑的標題,我很抱歉,對於如何提出我的問題,我有點難以理解。CakePHP通過兩個關聯顯示字段名稱

我是CakePHP的新手,但我很好地遵循了Cookbook/tutorials,但是我遇到了一些我找不到答案的東西。

我的結構如下:

'Invoices' hasMany 'InvoiceHistory' 
'InvoiceHistory' belongsTo 'InvoiceHistoryDeliveryStatus' 

由此,發票可以有多個發票的歷史,每個歷史記錄中包含的傳遞狀態ID,它鏈接到一個名稱。

在發票視圖(index.ctp)中,我顯示了所有發票的列表,但希望顯示最近的交貨狀態名稱(InvoiceHistory包含日期字段,因此可以對其進行排序) - 從而顯示'當前交貨狀態'。 當我做:

$this->set('invoices', $this->Invoice->find('all')); 

它不會去深足在它返回給我提供交付狀態的名稱,也沒有我的推斷只是我的結果中返回最近的發票歷史記錄的方式。我知道如何用MYSQL查詢手動執行此操作,但我認爲這可能是錯誤的。

在遵循CakePHP約定的情況下進行此操作的正確方法是什麼?

回答

1

使用Containable

$this->Invoice->Behaviors->attach('Containable'); 

$this->set('invoices', $this->Invoice->find('all', array(
    'contain' => array(
     'InvoiceHistory' => array(
      'InvoiceHistoryDeliveryStatus' 
     ) 
    ) 
)); 
+0

這是一個非常整潔的功能!感謝您的幫助 - 像魅力一樣。 – user984976

相關問題