モデルの beforeSave メソッドで一部のデータを暗号化しようとしています。しかし、それは保存されていません。
$currentBalance = $this->find("all", array(
"fields" => array(
"SUM(base_amount) as 'CurrentBalance'"
),
"conditions" => array(
"Payment.user_id" => $this->data["Payment"]["user_id"]
)
));
$this->log($this->data["Payment"]);
$this->log(Configure::read("Security.salt"));
$this->log(Security::cipher(implode("|", $this->data["Payment"]), Configure::read("Security.cipherSeed")));
$this->set("balance", $currentBalance[0][0]["CurrentBalance"] + $this->data["Payment"]["base_amount"]);
$this->set("balance_checksum", Security::cipher(implode("|", $this->data["Payment"]), Configure::read("Security.salt")));
ログファイルを見ると、ある種の暗号化されたデータが得られますが、すべて意味不明です。
データベースにいる間、私はまったく何も得ません。
暗号関数を「123」などの単純な文字列に置き換えると、正しく保存されます。
データベース接続が utf8 でエンコードされており、データベースのフィールドに utf8 照合があることを確認しました。
これに関する指針は素晴らしいでしょう
ありがとう