Я ломаю голову над самыми простыми вещами.
У меня есть сгенерированная Symfony форма с некоторыми настройками.У меня отлично сохраняется сохранение формы, за исключением того, что в поле «пароль» записывается пароль (как и ожидалось) в обычном формате.
Как я могу перехватить это значение перед вводом в базу данных и sha1 () перед записью?
Код по существу:
$this->dialog = $request->getParameter('dialog');
$this->form = new UserForm();
if ($this->getRequest()->getMethod() == "POST") {
$this->form->bind($request->getParameter('user'));
// intercept here, I suspect
$user = $this->form->save();
}
РЕДАКТИРОВАТЬ: проблема решена.
в / lib / model / User.php
класс Пользователь расширяет BaseUser {
public function save(PropelPDO $con = null)
{
if ($this->getPassword() != '')
{
$this->setPassword(sha1($this->getPassword()));
}
return parent::save($con);
}
}
Это довольно очевидно, но не для такого нуба, как я.надеюсь, это поможет кому-то еще.Если есть лучший способ сделать это без расширения функции save (), дайте мне знать?
Ресурс: http://www.symfony -project.org / jobeet / 1_4 / Propel / en / 10.модель
public function setPassword($rawPassword)
{
$salt = "fgv932g2e9dshdfkdjgf927gf8hlz082";
$password = sha1($salt . $rawPassword);
parent::setPassword($password);
}