CakePHP中的Ghost数据

时间:2011-12-06 03:18:15

标签: mysql cakephp

我有一个CakePHP保存方法,每个保存请求保存多个条目。我有没有想法为什么 - 我的AppModel没有任何特殊功能,我的AppController也没有。我的控制器和模型非常基础。这就是我所拥有的:

BalanceSheet Model

<?php
class BalanceSheet extends AppModel {
    var $belongsTo = array(
        'Simulation' => array(
            'foreignKey' => 'simulation_id',
        )
    );
}
?>

BalanceSheets控制器

<?php
class BalanceSheetsController extends AppController {
    function generate($simulation_id) {
        $data = array(
            'BalanceSheet' => array(
                'simulation_id' => $simulation_id,
                'year' => 2004
            )
        );
        $this->BalanceSheet->save($data);
    }
}
?>

数据库架构

CREATE TABLE IF NOT EXISTS `balance_sheets` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `simulation_id` int(11) NOT NULL,
  `year` int(11) NOT NULL,
  `buildings_and_improvements` float NOT NULL DEFAULT '0',
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=72 ;

当我的资产负债表为空时,我导航到balance_sheets / generate / 10,这就是结果:

SQL rows

什么。有没有搞错?那里发生了什么?如何才能保存一次?

修改

结果我的控制器被多次调用(我不知道为什么)。我将继续通过调试器来了解发生了什么。

1 个答案:

答案 0 :(得分:0)

啊,啊......明白了。这是一个样式表声明,有人在代码中放入了一个不正确的相对路径 - 它传入了“css”作为模拟ID,这就是重复插入为0的原因!

这是帮助我推断出它的原因(https://stackoverflow.com/a/353493/390977):

  

检查您的布局是否存在不存在的链接,例如配置错误   链接到favicon.ico将导致触发控制器操作   第二次。确保favicon.ico指向webroot   而不是本地目录,否则将生成请求   对于/controller/action/favicon.ico而不是/favicon.ico - 因此   触发你的行动。