2012-04-25 3 views
0

私はABCというモデルのエントリを編集できる編集ビューを作成しようとしています。ユーザーが特定の行の編集マスクを開くとすぐに行をロックする必要があります。私はこれを行うデータベースに 'ロックされた'と呼ばれるtinyint(1)の値を持っています。ここにコードの一部があります。それはsaveFieldメソッドで発生します。私はすでにチェックしています。値が正しいレコードで変更されるので、それは奇妙です!でも何とか同じ仕事を2回やろうとしているのですが、なぜか分かりません。saveFieldのCakePHPブランクエントリ

私はsaveFieldコードをこれに置き換えます(これはもちろん愚かでテスト用です)。これは何とか、editメソッドが2回呼び出されたことを証明します。パラメータなし、あるいは間違ったものとしたら...

if($this->ABC->id == 13) 
    $this->ABC->saveField('locked', true); 

誰かがアイデアを持っていますか?本が言うよう

+0

はよろしいですか? – riotera

答えて

1

、右saveField呼び出しの前にIDを設定してみてください:

だけsaveFieldを呼び出す前モデル(の$ this - > ModelName->のid = $のID)のIDを設定します() 。あなたのケースでは

:あなたは()一度だけのメソッド編集を呼び出して編集マスクを開いたときに

} else { 
    $this->ABC->id = $id; // ID should be set right before the saveField call 
    $this->ABC->saveField('locked', true); 
} 
+0

私はすでにそれを試みました。私が奇妙なのは、保存する前に日付を設定する必要があるbeforeSave関数があるということです。空の行に対しては設定されません。どうしてか分かりません。私はすべてを試みた。 – nino