首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在cakephp中显示来自不同相关模型的数据?

如何在cakephp中显示来自不同相关模型的数据?
EN

Stack Overflow用户
提问于 2013-06-19 02:02:05
回答 2查看 1.1K关注 0票数 0

我是cakePHP的新手,我正在尝试构建一个简单的new应用。

我有3个模型:属性,操作和类别。

我的人际关系是:

代码语言:javascript
运行
复制
Category -> hasMany -> Property
Operation -> hasMAny -> Property

每个属性都有一个用于类别(cat_id)和操作(op_id)的外键。

我想要做的是显示每个属性(在相应的视图中)与类别和操作的名称(字段在各自的表中是' NAME‘),而不是ID。我该怎么做呢?

更新:

所需输出的示例如下:

代码语言:javascript
运行
复制
ID    category    operation description ....

1     House       Sell       a house   ....

我现在所拥有的是

代码语言:javascript
运行
复制
ID    category    operation description ....

 1     2          3           a house   ....

2和3分别是‘house’(类别,操作)和‘sell’(操作,op_id)的ID

这是Category模型的代码:

代码语言:javascript
运行
复制
class Category extends AppModel{
    public $hasMany = array(
    'Property'=>array(
        'foreignKey' => 'cat_id'
    ));
}

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-19 21:04:26

找到解决方案了!比我想的容易多了。

首先,“hasMany”的用法并不理想。我所做的是在属性模型中使用关系"belongsTo“:

代码语言:javascript
运行
复制
class Property extends AppModel{
    var $name = 'Property';
    public $belongsTo = array(
        'Category' => array(
            'foreignKey' => 'idCat'         
        ),
        'Operation' => array(
            'foreignKey' => 'idOp'              
        )
    );
}

现在神奇的是:每当我在PropertiesController中执行find()时,我得到的是一个二维数组,其中包含属性数据以及它所属的表的数据。:

代码语言:javascript
运行
复制
Array
(
   [Property] => Array
        (
        [id] => 1
    )
[Category] => Array
    (
        [id] => 2
        [name] => House
    )
[Operation] => Array
    (
        [id] => 3
        [name] => Sell
    )

)现在在视图中,没有使用'Property‘,例如,我只使用了'Category’,一切都正常。

谢谢你的帮助!

附言:抱歉有任何误解,我不是以英语为母语的人。

票数 0
EN

Stack Overflow用户

发布于 2013-06-19 16:21:35

属性(id、name、category_id、operation_id)

类别(id,名称)

操作(id,name)

在属性表上使用递归=1或2进行查找时,您将自动获得所有相关数据

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17175777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档