也許這是因爲我已經累死了,但我完全錯過了一些東西。我繼承了一個來自朋友的蛋糕1.3應用程序,他正確設置了表格,但我缺少一些數據。當我打印數據陣列時,我期望的是:檢索cakephp中的模型數據的'belongsTo'部分
Array
(
[Listing] => Array
(
[id] => 74
[listing_name] => El Toro
[category_id] => 3
[location_id] => 2
[long_desc] =>
),
[Category] => Array
(
[id] => 3
[category_name] => Restaurant
),
)
(上市所屬類別)。控制器的功能是這樣定義的:
function view_detail(){
$this->set('um','true');
$l=$this->Listing->find('first', array('conditions'=>array('id'=>$this->params['cid'])));
$this->set('lst', $l);
}
相反,我得到這樣的:
Array
(
[Listing] => Array
(
[id] => 74
[listing_name] => El Toro
[category_id] => 3
[location_id] => 2
[long_desc] =>
)
)
翻翻他建立數據庫表中,所有的蛋糕的公約已經遵循:房源已CATEGORY_ID和類別有listing_id。我相信我有一段時間被告知,如果你有簡單的餅乾模型/關聯,你甚至不需要設置模型頁面,因爲蛋糕會自動知道關聯。但無論如何我做到了這一點,但並沒有改變。我試圖將遞歸設置爲2,並沒有什麼區別。 Sooooo ....不擅長cakephp,我不知道我做得不對。順便提一下,我正在列出列表的類別名稱(餐廳)。
UPDATE
這裏是我的2種型號:
class Category extends AppModel{
var $hasMany = array('Listing');
}
class Listing extends AppModel{
var $name='Listing';
var $belongsTo = array('Location'=>array('foreignKey'=>'location_id'), 'Category'=>array('foreignKey'=>'category_id'));
}
categories.listing_id錯誤/不必要。你確定你有'public $ belongsTo = array('Category');'在Listing模型和'public $ hasMany = array('Listing');'在'Category'模型中? – tigrang
categories.listing_id在我輸入這些數組時意外地包含了(實際上並不在數據庫表中,對不起!)。列表模型和類別模型都具有與belongsTo和hasMany正確的語法。這是蛋糕1.3,所以我只使用var $ hasMany等,而不是公共$ hasMany。 – huzzah
調試(get_class($ this-> Listing))的輸出是什麼?它是AppModel還是列表?遞歸應該可以工作,但嘗試Containable行爲不會受到傷害。 – tigrang