我有一个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,这就是结果:
什么。有没有搞错?那里发生了什么?如何才能保存一次?
修改
结果我的控制器被多次调用(我不知道为什么)。我将继续通过调试器来了解发生了什么。
答案 0 :(得分:0)
这是帮助我推断出它的原因(https://stackoverflow.com/a/353493/390977):
检查您的布局是否存在不存在的链接,例如配置错误 链接到favicon.ico将导致触发控制器操作 第二次。确保favicon.ico指向webroot 而不是本地目录,否则将生成请求 对于/controller/action/favicon.ico而不是/favicon.ico - 因此 触发你的行动。