私は単純なクラスを持っています:
User:
id | login | password | desc
そしてこれで形成します。
どうすれば作成できますか-入力パスワードがnull(strlen == 0)の場合、モデルでは問題になりません。
今、私は関数保存のUser.class.phpにあります:
$this->setPassword(sha512($this->getPassword));
私は単純なクラスを持っています:
User:
id | login | password | desc
そしてこれで形成します。
どうすれば作成できますか-入力パスワードがnull(strlen == 0)の場合、モデルでは問題になりません。
今、私は関数保存のUser.class.phpにあります:
$this->setPassword(sha512($this->getPassword));
DBレベルで「NOTNULL」がないことを確認する必要があるため、空の値は通常ORMによって無視されます。
カスタム関数で特定のパスワードを変更する可能性は2つあるので、簡単な例をいくつか紹介します。
1)モデルファイル内(教義または推進力があると思いますか?!):
/**
* via object's event handler
*/
preSave(){
if(strlen($this->getPassword()) > 0){
$this->setPassword(sha512($this->getPassword()));
}
}
2)またはフォームバリデーターとしても:
/**
* custom validator
*/
class myValidatorOldPassword extends sfValidatorBase{
/**
* Clean and validate user input
*
* @param mixed $value Value of form input
* @return mixed Value
*/
protected function doClean($value)
{
// trim is not needed
$clean = (string) $value;
// password is ok?
if (strlen($clean) > 0)
{
return sha512($clean);
}
// Throw error - if you want
// throw new sfValidatorError($this, 'invalid', array('value' => $value));
// or return empty value
return $clean;
}
}
もちろん、このコードはあなたへのヒントにすぎないので、改善されるかもしれません。