0

save/set モデル関数を使用して安全に挿入できる CakePHP のクレンジング関数に満足しています。現在、既存のモデルのデータの増分を保存する必要があり、必要なプロセスを実行できません。

現在、私のモデルのコードは次のようになっています。

$this->save(array('Model.field', 'Model.field + 1'));

しかし、予想どおり、問題のフィールドの整数のインクリメントではなく、文字列全体がエスケープされるため、これは機能しないことに気付きました。どんな助けでも大歓迎です。

最初に問題の行をクエリしてから、PHP で値をインクリメントすることが回避策であることは承知していますが、MySQL/クエリ ソリューションのみを使用することをお勧めします。

4

2 に答える 2

2

Model::updateAll() を使用します。マニュアルに例があります。

于 2012-09-18T06:03:24.603 に答える
1

私はこのようなことをします:

$this->id = 1;
$data = $this->read();
$this->saveField('field_name', $data['Model']['field_name'] + 1);

または、query(); を使用できます。

$this->query('UPDATE Model.field_name = Model.field_name + 1 WHERE Model.id=1');
于 2012-09-18T08:37:08.523 に答える