cakephp:如何显示外键表字段

时间:2015-02-10 09:48:11

标签: cakephp-2.0

基本上,

数据库表

  1. 产品:id,name

  2. 评论:productId,评论

  3. 型号: product.php

    class Product extends AppModel {
      public $hasMany = array('Comment'=>array('foreignkey'=>'productId'));
    }
    

    comment.php

    class Comment extends AppModel {
      public $belongsTo = array('Product');
    }
    

    在产品index.ctp中,如何显示一个产品评论?我需要在ProductsController.php和index.ctp中编写什么?

1 个答案:

答案 0 :(得分:1)

如果您遵循CakePHP约定(CakePHP Convention over Configuration),那么所有这些都将自动完成,它需要将外键命名为product_id而不是productId(尽管您已在关系中设置了外键 - 根据惯例,从一开始就更容易开始了。

您还应该在关系中指定类名:

public $hasMany = array(
    'Comment' => array(
        'className' => 'Comment',
        'foreignKey' => 'product_id'
    )
);

在您的情况下,您应该在控制器中执行的操作是:

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

这将获取您对这些产品的所有产品和任何相关评论(以及您在产品型号中声明的任何其他相关型号)

如果您想了解有关设置此内容的详情,请查看CakePHP - Retrieving your data