我有一个“生产”表,其字段employee_id作为与employees表的belongsTo关系。
问题是我的employees表使用字段emp_appserial作为主键 - 而不是id字段 - (并非employee表上的每个条目都获得一个id值,每个人都获得自动增量emp_appserial)
我想知道是否有办法使用除id之外的字段来使用saveField来获取我的记录:(我提到我的记录没有“id”值,只有emp_appserial,这是pk)
$this->loadModel('Employees');
$this->Employees->id = $id;
$this->Employees->saveField('emp_hrnote', 'text to be saved');
我想用:
$this->Employees->emp_appserial = $id;
而不是
$this->Employees->id = $id;
我可行吗?
除此之外,重新设计我的表可能为时不晚,但我已经拥有大量的生产数据: - (
感谢您的任何指示。
答案 0 :(得分:3)
以下应该做的伎俩(顺便说一句,模型应该是单数):
class Employees extends Model {
public $primaryKey = 'emp_appserial';
}
如果您未设置$primaryKey
属性,则会将其设置为id
:Source
设置后,saveField()
会将该字段用于条件:Source
编辑:为了说清楚,您仍然可以使用Model::$id
来设置主键值。 Model::$id
包含主键值,Model::$primaryKey
包含主键字段
答案 1 :(得分:0)
使用
$this->Employee->updateAll(
array('Employee.emp_hrnote' => "$thetxt"),
array('Employee.emp_appserial' => $id)
);
作为一种解决方法很好,但是我希望我可以解决我的空ID问题...将在另一个帖子上发布另一个问题。