使用除行id之外的键更新cake php中的记录

时间:2014-02-21 11:05:39

标签: cakephp save sql-update key

我有一个数据库表,其中数据provider_id也是唯一的。现在我有一组数据,其中provider_id不是行ID。那么可以使用此provider_id编辑行吗?

3 个答案:

答案 0 :(得分:2)

如果您不想使用主键,那么似乎updateAll()是您的朋友

http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-updateall-array-fields-array-conditions

答案 1 :(得分:0)

通过执行以下操作获取要编辑的行:

$row = $this->ModelName->findByProviderId($data['provider_id']);

现在修改$ row然后你喜欢:

$row['some_field'] = 'someValue';

然后您可以使用Model::save()之类的:

$this->ModelName->save($row);

只要$row包含模型的primaryKey字段(通常为id),Model::save()就会执行更新。

答案 2 :(得分:0)

试试这个:

让模型为“联系”。

$this->Contact->updateAll(
     array( 'Contact.any field' => 'value' ),   //fields to update ex. Contact.name
     array( 'Contact.provider_id' => $id )  //condition $id is the provider_id
);

由于