2010-02-07 8 views
0

내가해야 할 일은 'passwordagain'필드를 추가하여 기본 userForm을 사용자 정의하고 'password'필드와 동일한 새 필드에 값을 설정하는 것입니다. 내 코드 :symfony 양식의 추가 필드에 기본값을 설정하는 방법

class UserForm extends BaseUserForm 
{ 
public function configure() 
{ 

$this->widgetSchema['password'] = new sfWidgetFormInputPassword(); 
$this->widgetSchema['passwordagain'] = new sfWidgetFormInputPassword(); 

$this->validatorSchema['password'] = new sfValidatorString(); 
$this->validatorSchema['passwordagain'] = new sfValidatorString(); 

$this->getValidatorSchema()->setPostValidator(
    new sfValidatorSchemaCompare(
    'password', 
    sfValidatorSchemaCompare::EQUAL, 
    'passwordagain', 
    array(), 
    array('invalid' => 'Passwords don\'t match') 
)); 

$this->setDefault('passwordagain', $this->getObject()->getPassword()); 

$this->useFields(array('username', 'password', 'passwordagain')); 

} }

을 setDefault 방법 일 것 같지 않습니다. 아마 그것은 새로운 사용자를 위해서만 작동하지만 그것은 내가 여기서 찾고있는 것이 아닙니다.

감사합니다. Radu.

P.S은 : BTW ... 난 당신이 sfWidgetFormInputPassword 위젯을 사용하고 있기 때문에 기본이 작동하지 않는 이유는 추진

답변

2

와 심포니 1.4 사용합니다.

암호 입력란을 미리 채우지 않는 것이 가장 좋습니다. 이것은 sfWidgetFormInputPassword 위젯이 수행하는 것입니다.

당신이 가장 좋은 방법에 대해 이동하려면 다음을 수행합니다

,

$this->widgetSchema['passwordagain']->setOption('always_render_empty', false); 

그러나, 나는 심각하게 당신이 그렇게하지 않는 것이 좋습니다.

+0

당신 말이 맞습니다. 내가 그것에 대해 더 많이 생각할 때 db의 암호는 md5이므로 필드를 해당 값으로 렌더링하면 아무런 효과가 없습니다. 도움 주셔서 감사합니다. –

관련 문제