在CakePHP中,我有两个模型:客户端&门票。客户可以有很多票,而票只能有1个客户。
添加新票证时,我想通过仅输入名称来自动创建新客户。所以形式是:
名称=“名称客户”>>名称应保存在Ticket表中的Client table en new client_ID中 信息=票证信息>>保存在故障单表中。 “保存”
我不确定这是怎么回事。我在模型中有关联并尝试saveAll但是Client表中没有存储数据。如何在Ticket表中获取ID?
希望有人能指出我正确的方向。我已经搜索了其他答案,但似乎无法找到解决方案。 saveAll是正确的方法吗?
答案 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;
}