0

我有一个“生产”表,其中字段employee_id 作为与employees 表的belongsTo 关系。

问题是我的员工表使用字段 emp_appserial 作为主键 - 而不是 id 字段 - (并非员工表上的每个条目都有一个 id 值,每个人都会自动递增 emp_appserial)

我想知道是否有办法使用 saveField 使用除 id 以外的字段来获取我的记录:(我提到我有没有“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;

我那可行吗?

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

感谢您的任何指点。

4

2 回答 2

3

以下应该可以解决问题(顺便说一句,模型应该是单数):

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

如果您不设置该$primaryKey属性,它将被设置为idSource

设置后,saveField()将使用该字段作为条件:Source

编辑:为了清楚起见,您仍然可以Model::$id用来设置主键值。Model::$id保存主键值保存Model::$primaryKey主键字段

于 2012-10-13T07:04:54.750 回答
0

用过的

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

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

于 2012-10-13T07:20:10.403 回答