【问题标题】:CakePHP querying table that doesn't have a controllerCakePHP 查询没有控制器的表
【发布时间】:2013-05-02 03:15:37
【问题描述】:

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

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

【问题讨论】:

    标签: php cakephp


    【解决方案1】:

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

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

    【讨论】:

    • 我可以有一个没有 OrderItemsController 的 order_item 模型吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 2015-07-23
      • 2013-06-02
      • 1970-01-01
      • 2011-08-05
      • 2023-03-16
      相关资源
      最近更新 更多