CakePHP,不知道如何从表产品和类别中选择类别名称

时间:2014-09-02 04:17:14

标签: cakephp cakephp-2.5

我是cakephp的新手 我有两个表tb_product和tb_category 我想选择下面的sql。我怎么能用cakephp来做呢?

SQL:

SELECT tb_product.id, tb_product.name, tb_category.name 
FROM tb_product 
INNER JOIN tb_category 
WHERE tb_product.cat_id = tb_category.cat_id"

谢谢大家的帮助!

tb_product:
----------
id
name
===========

tb_category:
-----------
cat_id
name
==========

先谢谢你了!

1 个答案:

答案 0 :(得分:1)

您可以在Cake模型中为Product创建a model association,以根据cat_id外键自动加入hasOne关系中的Category,或者您可以将find()查询作为{{ {3}}:

$results = $this->Product->find('all', array(
    'joins' => array(
        array(
            'table' => 'tb_category',
            'alias' => 'Category',
            'type' => 'INNER',
            'conditions' => 'Category.cat_id = Product.cat_id'
        )
    ),
    'fields' => array(
        'Product.id',
        'Product.name',
        'Category.name'
    )
));

模型关联看起来像这样:

class Product extends AppModel {
    // ...
    public $hasOne = array(
        'Category' => array('foreignKey' => 'cat_id')
    );
}

然后,当您查询产品型号时,应与其一起返回匹配的类别:

$results = $this->Product->find('all');