gpt4 book ai didi

php - 使用 CakePHP 将数据保存到新表

转载 作者:行者123 更新时间:2023-11-29 06:16:42 25 4
gpt4 key购买 nike

我有一个订单数据库,希望在订单完成后将订单保存在新数据库中。我的订单模型有一个包含 id、客户、零件号等的表,而我的 OldOrder 有一个订单表的副本。

订单完成后,我的计划是将订单数据保存到 OldOrder 模型,然后从 Order 模型中删除订单。这样我就可以拥有一个小的当前订单数据库,并让旧订单数据库扩展。

我对执行此操作的最佳方法感到困惑,我尝试在我的 Order 模型中创建一个操作,如下所示(这只是为了将数据复制到 OldOrder 模型):

function save_order() {
if(!empty($this->data)){
$id = $this->data['Order']['id'];
$this->data = $this->Order->find('first', array('conditions' => array('Order.id' => $id)));
$this->loadModel('OldOrder');
$this->OldOrder->save($this->data);
}
}

但是这不起作用。我没有收到任何错误消息,但没有任何内容保存到 OldOrder 表中。任何有关发生这种情况的信息或实现我想做的事情的更好方法将不胜感激!

编辑:

这是来自操作的 SQL 转储:

1 SHOW FULL COLUMNS FROM `orders`
2 SELECT CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.COLLATIONS WHERE COLLATION_NAME= 'latin1_swedish_ci'; 1 1 4
3 SHOW FULL COLUMNS FROM `users`
4 SELECT `Order`.`customer`, `Order`.`length`, `Order`.`height`, `Order`.`date`, `Order`.`quantity`, `Order`.`order_number`, `Order`.`date_created`, `Order`.`date_dispatched`, `Order`.`id` FROM `orders` AS `Order` WHERE `Order`.`id` = 17
5 SHOW FULL COLUMNS FROM `old_orders`

最佳答案

您需要将Order数据传递给OldOrder模型的保存方法,如下所示:

$this->OldOrder->save(array('OldOrder' => $this->data['Order']));

或者你也可以这样做:

$this->OldOrder->set($this->data['Order']);
$this->OldOrder->save();

来自CakePHP documentation :

CakePHP makes saving model data a snap. Data ready to be saved should be passed to the model’s save() method using the following basic format:

 Array
(
[ModelName] => Array
(
[fieldname1] => 'value'
[fieldname2] => 'value'
)
)

关于php - 使用 CakePHP 将数据保存到新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com