CakePHP查询表没有控制器

时间:2013-05-02 03:15:38

标签: php cakephp

我有一个标有OrdersController的控制器,但是我有一个额外的表来构成订单的项目。

所以我的两张桌子是

//orders
id  |  email  | date   |  total | order_status

//order_items
id  | product_num | quantity  | total  | item_status

在这种情况下,order_numbers.id是引用orders.id。

的外键

当order_items不是控制器本身时,如何在cakephp中建立这个外键连接?

我尝试查询但是我收到错误并显示cakephp试图查询order.item_status(它没有尝试查询order_items表)

$order_status = $this->Order->find('all', array(
     'conditions' => array('order_items.item_status' => "Not Filled")
));

我想查看特定订单中的所有商品是否已填写,以便我可以将订单表状态标记为已填写。

2 个答案:

答案 0 :(得分:1)

您需要关联模型,例如您的模型 order_item模型

class OrderItem extends AppModel {
    public $belongsTo = array(
        'Order' => array(
            'className'    => 'Order',
            'foreignKey'   => 'order_id'
        )
    );
}

答案 1 :(得分:0)

您的模型图层完全独立于您的控制器图层。您可以为控制器设置尽可能多的模型,无论您的控制器或模型的名称是什么都无关紧要(当然遵守CakePHP's Naming Conventions)。默认情况下,如果您有PostsController并且未定义uses成员变量,CakePHP将尝试加载Post模型。