cakephp多个关联到同一个模型保存问题

时间:2015-04-10 10:23:51

标签: cakephp

我的模型交易分别与sender_id和recipient_id外键链接到客户

public $belongTo = array(
    'Sender' => array(
        'className' => 'Customer',
        'foreignKey' => 'sender_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
    'Recipient' => array(
        'className' => 'Customer',
        'foreignKey' => 'recipient_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ) 
)

客户数据必须放在哪些数据键才能保存?我试过这个。

$data['Transaction']['amount'];
$data['Recipient']['name'];
$data['Sender']['name'];

收件人和发件人别名客户模型。

现在这个大问题。收件人和发件人别名是否在保存时解析为客户?

2 个答案:

答案 0 :(得分:1)

是的,您的数据格式是正确的。您只需要在事务模型上使用saveAll或saveAssociated。

请参阅Cookbook for a description of saveAll()。它实际上是一个包装器,它将确定是否需要执行saveAssociated(),它将在您的情况下执行,或者saveMany(),它将多个记录保存到同一模型。

$this->Transaction->saveAll($data);

如果您正在对交易模型进行修改,请确保在表单中包含Recipient.id和Sender.id,并且这些内容将会更新,而不是创建新记录。

答案 1 :(得分:0)

我的CakePHP有点生疏,但我相信你问题的答案是肯定的。

要保存发件人,您需要:

$this->Sender->save();

而不是:

$this->Customer->save();