2010-03-27 29 views
4

我有一個簡單的數據庫與多個表。我無法弄清楚如何讓cakePHP在索引視圖中顯示與外鍵關聯的值。或者創建一個視圖,其中可以更新我們選擇的字段(可以在單個頁面上更新或查看位置名稱,而不是location_id)。如何讓cakePHP檢索由外鍵代表的數據?

我在http://lovecats.cakeapp.com上創建了一個例子來說明這個問題。如果您查看頁面並單擊「列表貓」,您會注意到它顯示了位置表中的location_id字段。您還會注意到,當您點擊「添加貓」時,您必須從locations表中選擇一個location_id。這是cakePHP構建應用程序的自動化方式。我希望這是字段location_name。

alt text

的數據庫設置,使表貓有一個名爲LOCATION_ID一個外鍵有一個表名爲位置的關係。

這是我的問題:我想這些頁面顯示LOCATION_NAME而不是LOCATION_ID。如果你想登錄到應用程序,你可以去http://cakeapp.com/sqldesigners/sql/lovecats和密碼'密碼'來查看數據庫的關係等。

我如何有一個頁面顯示我想要的字段?是否有可能創建一個頁面來同時更新所有表中的字段?

這是我一直試圖弄清楚的一塊蛋糕,這將真正讓我過了一個駝峯。你可以從上面的網址下載應用程序和SQL。

+0

好吧,我想我想出瞭如何做到這一點。這只是將它添加到我想要顯示在主頁面中的每個模型的問題:var $ displayField ='field_name_that_i_wanted'; – 2010-03-27 23:47:23

+0

http://cakeapp.com是一個很酷的工具,感謝您使用它! – powtac 2010-04-01 19:51:08

回答

3

哈,你算出來了! Cake使用$ displayField變量來決定什麼......以及如何顯示。

如果我沒有記錯,默認情況下,cake會查找'title'和'name'字段,如果這兩個字段不可用,它將只顯示您的主鍵字段。幸運的是,你可以按照你自己的想法來覆蓋它)

+0

感謝您對此的驗證。我將不得不使用表格上的標題/名稱字段,以使其儘可能自動地發揮作用。 – 2010-03-29 17:07:58

1

我想你需要在你的視圖中echo $ cat ['Location'] ['location_name']。