我是cakePHP的新手,我正在尝试构建一个简单的new应用。
我有3个模型:属性,操作和类别。
我的人际关系是:
Category -> hasMany -> Property
Operation -> hasMAny -> Property每个属性都有一个用于类别(cat_id)和操作(op_id)的外键。
我想要做的是显示每个属性(在相应的视图中)与类别和操作的名称(字段在各自的表中是' NAME‘),而不是ID。我该怎么做呢?
更新:
所需输出的示例如下:
ID category operation description ....
1 House Sell a house ....我现在所拥有的是
ID category operation description ....
1 2 3 a house ....2和3分别是‘house’(类别,操作)和‘sell’(操作,op_id)的ID
这是Category模型的代码:
class Category extends AppModel{
public $hasMany = array(
'Property'=>array(
'foreignKey' => 'cat_id'
));
}提前谢谢你。
发布于 2013-06-19 21:04:26
找到解决方案了!比我想的容易多了。
首先,“hasMany”的用法并不理想。我所做的是在属性模型中使用关系"belongsTo“:
class Property extends AppModel{
var $name = 'Property';
public $belongsTo = array(
'Category' => array(
'foreignKey' => 'idCat'
),
'Operation' => array(
'foreignKey' => 'idOp'
)
);
}现在神奇的是:每当我在PropertiesController中执行find()时,我得到的是一个二维数组,其中包含属性数据以及它所属的表的数据。:
Array
(
[Property] => Array
(
[id] => 1
)
[Category] => Array
(
[id] => 2
[name] => House
)
[Operation] => Array
(
[id] => 3
[name] => Sell
))现在在视图中,没有使用'Property‘,例如,我只使用了'Category’,一切都正常。
谢谢你的帮助!
附言:抱歉有任何误解,我不是以英语为母语的人。
发布于 2013-06-19 16:21:35
属性(id、name、category_id、operation_id)
类别(id,名称)
操作(id,name)
在属性表上使用递归=1或2进行查找时,您将自动获得所有相关数据
https://stackoverflow.com/questions/17175777
复制相似问题