我正在尝试FileUpload
在我的 CakePHP (1.3) 应用程序中使用插件 (https://github.com/webtechnick/CakePHP-FileUpload-Plugin)。
我有两个模型:PendingContract
和PendingContractFile
. APendingContract
可以有许多PendingContractFile
记录。保存新的PendingContract
时,我也想保存上传的PendingContractFile
;但是,我的保存方法失败了,因为PendingContract
还没有一个 ID,它被用作我的PendingContractFile
.
为清楚起见,这是我的模型:
<?php
class PendingContract extends AppModel {
var $name = 'PendingContract';
var $belongsTo = array(
'Supplier'
);
var $hasMany = array(
'PendingContractFile'
);
}
class PendingContractFile extends AppModel {
var $name = 'PendingContractFile';
var $belongsTo = array(
'PendingContract' => array(
'className' => 'PendingContract',
'foreignKey' => 'pending_contract_id'
),
'Author' => array(
'className' => 'User',
'foreignKey' => 'author_id'
)
);
}
这是我保存的控制器方法PendingContract
:
<?php
class PendingContractsController extends AppController {
function add() {
if (!empty($this->data)) {
if ($this->FileUpload->success) {
$this->Session->setFlash('Pending contract successfully created.');
$this->redirect(array('action' => 'index'));
}
else {
$this->Session->setFlash($this->FileUpload->showErrors());
}
}
}
}
目前我得到的错误是:
1452:无法添加或更新子行:外键约束失败(pending_contract_files,CONSTRAINT pending_contract_files_ibfk_1 FOREIGN KEY (pending_contract_id) REFERENCES pending_contracts (id) ON DELETE CASCADE ON UPDATE CASCADE)
如何使用该FileUpload
插件,以便将上传的文件与我的新PendingContract
记录一起附加?