這個問題的短版本是:獲取相關數據
我怎麼能走,只有在數組中存在的數據(即:不保存在模型還),它涉及到一個值從模型中的$this->find('list')
數組?
這個問題的長版本是:
我使用CakePHP和Wizard Component的3步申請表。
3層形式的步驟是接觸,當然和細節。
這些步驟之後,有一個「檢討」步驟,我想從以前的3步的形式顯示所有提交的爲用戶按下提交之前檢查最後一次。大多數情況下,這很有效。我只需要做在控制器中的以下內容:
function _prepareReview() {
$contact = $this->Wizard->read('contact');
$course = $this->Wizard->read('course');
$details = $this->Wizard->read('details');
$this->set(compact('contact','course','details'));
}
然後,在review.ctp我可以引用像$contact['Contact']['firstname'];
事情讓這個人的姓名等
然而,問題是從獲取數據「相關「模型。例如,有一個「國籍」字段,它只是一個ID。在「詳細信息」一步,我用find('list')
來從國籍模型作爲正常顯示一個下拉菜單各族列表,然後蛋糕保存爲它應該做相應的ID。
但是,當我來到在嚮導組件的「審覈」的步驟,我只得到了嚮導組件的陣列的實際ID。我真的不希望得到任何其他東西。
我看不到任何明顯的方式從嚮導組件的上下文中訪問$details[Detail][Nationality][name]
(或類似的東西),因爲設置遞歸不起作用,因爲在這個階段數據實際上不在模型中,它是隻是一組表單數據。
因此,換句話說,我已經在陣列中的數據(而不是從一個模型來,但是從一種形式subsmission)如下:
Array
(
[Details] => Array
(
[firstname] => Test
[nationality_id] => 3
)
)
然後我有以下從$this->Detail->Nationality->find('list')
看起來未來像這樣:
Array
(
[0] => American
[1] => Australian
[2] => British
[3] => Canadian
)
那麼如何才能得到$details['Details']['nationality_id'];
從嚮導組件顯示例如「加」而不是「3」?當只有一個數組來自模型時,如何建立關係?我只需要這個即刻確認所有的數據給用戶。該ID「3」,當然,被寫入型號,一旦用戶按下提交,而這已經是工作,因爲它應該做的。
或者這是一個做事的徹底瘋狂的方式,我應該看一個完全不同的方法,如先保存的數據?但是,直到用戶點擊最終提交時,我才真正想保存它。
謝謝,deizel,你明白我問完全和你的解決方案的作品。我將使用你給出的第一個例子,因爲它只花了幾秒鐘來實現第二個解決方案,看起來對於網站的一部分來說工作會有點太多,甚至不會得到太多的使用。再次感謝! – Joseph