みんな。
ユーザー情報の保存プロセスを作成しようとしていて、この問題にぶつかりました。パスワードフィールドに mysql 関数 password() を使用したかったのですが、データを保存するときに MySQL 関数を使用する方法がないようです。
これを行う方法はありますか、それとも単に CakePHP では不可能ですか?
ありがとうございました。
TLDR:
$this->data['MyModel']['password'] =
DboSource::expression('PASSWORD('.$password.')');
詳細:
あなたが求めていることを行うのは理想的ではないというコメンターに同意しますが、本当にしたい場合は、query()
メソッドを使用して通常の MySQL クエリを直接実行できます。詳細はこちら:
http://book.cakephp.org/2.0/en/models/retriving-your-data.html#model-query
例:
$this->Picture->query("SELECT * FROM pictures LIMIT 2;");
または、「TLDR」で前述した方法を使用して、MySQL 関数を使用してデータを処理できるようにします。
別の (ただし推奨される) 方法:
これは、CakePHP の方法でパスワードをハッシュする方法に関するドキュメントです。
http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#hashing-passwords