1

列に一意の値を生成する必要があります。テーブルに最後に挿入された値をインクリメントしたい。

私はこれを試しましたが、役に立たなかった

if($this->request->is('post')){
    $code = $this->Department->find('first', array(
        'fields' => 'Department.code',
        'order'  => 'Department.code DESC'
    ));
    $code += 1;
    $this->data['Department']['code'] = $code;
    if($this->Department->save($this->request->data)){
        $this->Session->setFlash('New department added.');
        $this->redirect(array('action' => 'add'));
    }
}

ありがとう!

4

2 に答える 2

3

$ this-> request-> dataを保存していますが、データを$this->dataに配置しています。

これで試してください:

if($this->request->is('post')){
    $code = $this->Department->find('first', array('fields' => 'Department.code','order' => 'Department.code DESC'));
    $code += 1;
    $this->request->data['Department']['code'] = $code;
    if($this->Department->save($this->request->data)){
        $this->Session->setFlash('New department added.');
        $this->redirect(array('action' => 'add'));
    }
}
于 2012-09-20T08:36:44.720 に答える
0

$ id = $ this-> User-> getLastInsertId();

この関数により、最後に挿入されたIDを取得し、その値をインクリメントして、使用する場所で使用するか、このIDをインクリメントして、データベースに保存します。

于 2012-09-20T12:22:16.680 に答える