CakePHP:将数据保存在两个模型中

时间:2013-12-04 08:55:16

标签: cakephp

在CakePHP中,我有两个模型:客户端&门票。客户可以有很多票,而票只能有1个客户。

添加新票证时,我想通过仅输入名称来自动创建新客户。所以形式是:

名称=“名称客户”>>名称应保存在Ticket表中的Client table en new client_ID中 信息=票证信息>>保存在故障单表中。 “保存”

我不确定这是怎么回事。我在模型中有关联并尝试saveAll但是Client表中没有存储数据。如何在Ticket表中获取ID?

希望有人能指出我正确的方向。我已经搜索了其他答案,但似乎无法找到解决方案。 saveAll是正确的方法吗?

2 个答案:

答案 0 :(得分:0)

你应该在将值插入表之前设置一个php条件,sql request 4 exemple返回相同ticket_id的重复次数,这样如果返回的值大于1,请求就无法执行,否则请求插入值 计算行数的函数:mysql_num_rows('request');

答案 1 :(得分:0)

您可以使用callback methods

如果您已使用belongsTo Client在故障单模型中定义了您的关系,则可以从该模型访问该关系。

public $belongsTo = array(
    'Client' => array(
        'className' => 'Client',
        'foreignKey' => 'client_id',
    ),
);

因此,如果您想在保存故障单之前创建新客户端,您可以执行以下操作:

public function beforeSave ($options = array()) {
    $this->data['Client']['name'] = $someVar;
    $this->Client->save($this->data);
    $this->data[$this->alias]['client_id'] = $this->Client->getInsertID();
    return true;
}