Cakephp保存没有id的数据

时间:2013-06-10 11:36:00

标签: cakephp model save cakephp-2.0 cakephp-2.1

我有一个没有id字段的表,并使用字段'app_no'作为主键。

现在我必须保存到这个模型/表...但是模型中没有$ id,因此它失败了。

我是否有任何方法可以使用Model->save()进行保存而不使用$id

备注:该表与其他项目共享,因此无法对表结构进行任何更改。

2 个答案:

答案 0 :(得分:2)

请改用Model::updateAll()。第一个参数采用新值,第二个参数采用条件。

所以你可以做到

$this->Model->updateAll(array("Model.value" => "'value'"),array("Model.name" => "name123"));

但要小心,与save()不同,这需要MySQL表达式。

好的,起初这听起来像你没有主键。如果您只需要一个名称不同的PK字段,只需在模型中执行此操作:

public $primaryKey = 'app_no';

或者您可以在Model对象上直接设置属性

$this->Model->primaryKey

答案 1 :(得分:1)

您可以在模型中设置主键,如:

//Model 
var $primaryKey = 'app_no';

然后保存将以您需要的方式工作。

请使用以下链接查看“primaryKey”部分: http://book.cakephp.org/2.0/en/models/model-attributes.html