Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cakephp与同一模型的多重关联保存问题_Cakephp - Fatal编程技术网

cakephp与同一模型的多重关联保存问题

cakephp与同一模型的多重关联保存问题,cakephp,Cakephp,我有一个交易模型,分别使用发送者id和接收者id外键链接到客户两次 public $belongTo = array( 'Sender' => array( 'className' => 'Customer', 'foreignKey' => 'sender_id', 'conditions' => '', 'fields' => '', 'order' => ''

我有一个交易模型,分别使用发送者id和接收者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'];
收件人和发件人别名客户模型


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

我的CakePHP有些生疏,但我相信您的问题的答案是肯定的

要保存发件人,您需要:

$this->Sender->save();
而不是:

$this->Customer->save();

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

看。它实际上是一个包装器,它将决定是否需要执行saveAssociated()(在您的案例中是这样做的),还是执行saveMany()(将多个记录保存到同一个模型中)

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

如果要对事务模型执行编辑,请确保在表单中包含Recipient.id和Sender.id,它们将被更新,而不是创建新记录。

$this->Sender->save()将从何处调用。交易或客户模型。另外,在事务模型中调用saveAll()是否会正确保存别名关联我关心的是客户别名。在我看来,在事务中调用saveAll()似乎是试图一次保存两个以上的关联。一个我不知道的特征。请纠正我的错误。saveAll()将在传递的数据中包含的每个模型中保存日期。在您的情况下,它将保存交易金额、收件人姓名和发件人姓名。收件人和发件人将保存到客户表中。谢谢。终于明白了。我不能因为我的名誉而胜过你value@CholthiPaulTtiopic你可以。