我有一个没有 id 字段的表,并使用字段“app_no”作为主键。
现在我必须保存到这个模型/表......但是模型中没有 $id ,因此它失败了。
有没有什么方法可以在Model->save()
没有 的情况下进行保存$id
?
备注:该表与其他项目共享,因此不能对表结构进行任何更改。
我有一个没有 id 字段的表,并使用字段“app_no”作为主键。
现在我必须保存到这个模型/表......但是模型中没有 $id ,因此它失败了。
有没有什么方法可以在Model->save()
没有 的情况下进行保存$id
?
备注:该表与其他项目共享,因此不能对表结构进行任何更改。
改为使用Model::updateAll()
。第一个参数采用新值,第二个参数采用条件。
所以你可以做
$this->Model->updateAll(array("Model.value" => "'value'"),array("Model.name" => "name123"));
但要小心,不像save()
,这需要 MySQL 表达式。
好的,起初这听起来像您没有主键。如果您只需要一个不同名称的 PK 字段,只需在模型中执行此操作:
public $primaryKey = 'app_no';
或者您可以直接在 Model 对象上设置属性
$this->Model->primaryKey
您可以在模型中设置主键,例如:
//Model
var $primaryKey = 'app_no';
然后保存将按照您需要的方式工作。
请使用此链接检查“primaryKey”部分:http: //book.cakephp.org/2.0/en/models/model-attributes.html