也许是因为我累死了,但我在这里完全错过了一些东西。我从一个朋友那里继承了一个蛋糕 1.3 应用程序,他正确设置了他的桌子,但我丢失了一些数据。当我打印数据数组时,我期望的是:
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] =>
)
)
翻看他设置的数据库表,所有 cake 的约定都被遵循:listings 有 category_id,categories 有 listing_id。我相信不久前有人告诉我,如果您有简单的千篇一律的模型/关联,您甚至不需要设置模型页面,因为蛋糕会自动知道关联。但无论如何我都做了,并没有什么不同。我尝试将递归一直设置为 2,但没有任何区别。Sooooo ....不擅长cakephp,我不知道我做错了什么。顺便说一下,我正在寻找列出列表的类别名称(餐厅)。
更新
这是我的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') );
}