0

我有一个标有 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")
));

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

4

2 回答 2

1

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

class OrderItem extends AppModel {
    public $belongsTo = array(
        'Order' => array(
            'className'    => 'Order',
            'foreignKey'   => 'order_id'
        )
    );
}
于 2013-05-02T03:24:59.490 回答
0

您的模型层完全独立于您的控制器层。您的控制器可以有尽可能多或尽可能少的模型,并且控制器或模型的名称无关紧要(当然要遵守CakePHP 的命名约定)。默认情况下,如果你有一个PostsController并且你没有定义uses成员变量,CakePHP 将尝试加载Post模型。

于 2013-05-02T07:16:33.540 回答