cakephp id约定saveField问题

时间:2012-10-13 06:53:07

标签: cakephp

我有一个“生产”表,其字段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;

我可行吗?

除此之外,重新设计我的表可能为时不晚,但我已经拥有大量的生产数据: - (

感谢您的任何指示。

2 个答案:

答案 0 :(得分:3)

以下应该做的伎俩(顺便说一句,模型应该是单数):

class Employees extends Model {
    public $primaryKey = 'emp_appserial';
}

如果您未设置$primaryKey属性,则会将其设置为idSource

设置后,saveField()会将该字段用于条件:Source

编辑:为了说清楚,您仍然可以使用Model::$id来设置主键值。 Model::$id包含主键Model::$primaryKey包含主键字段

答案 1 :(得分:0)

使用

    $this->Employee->updateAll(
            array('Employee.emp_hrnote' => "$thetxt"), 
            array('Employee.emp_appserial' => $id)
    );

作为一种解决方法很好,但是我希望我可以解决我的空ID问题...将在另一个帖子上发布另一个问题。