2013-04-08 2 views
1

возможно установить следующие параметры:Оставив пароль пустого в редактировании режим Зенда

Когда нужно добавить пользователь, вам необходимо установить пароль, но когда вы идете и редактирование пользователя, то это не нужно устанавливать пароль.

Но когда вы оставляете свой пароль пустым в режиме редактирования. Он не должен перезаписывать перехватывающий пароль.

Как исправить это в среде Zend 2.0?

Edit:

Может быть, это лучше показать код .. Я следующий валидатор на моей passwordfields:

  $inputFilter->add($factory->createInput(array(
      'name' => 'password', 
      'required' => true, 
      'filters' => array(
       array('name' => 'StripTags'), 
       array('name' => 'StringTrim'), 
      ), 
      'validators' => array(array(
        'name' => 'StringLength', 
        'options' => array(
         'encoding' => 'UTF-8', 
         'min' => 4, 
         'max' => 30, 
        ), 
       ),), 
     ))); 

     $inputFilter->add($factory->createInput(array(
      'name' => 'confirm_password', 
      'required' => false, 
      'filters' => array(
       array('name' => 'StripTags'), 
       array('name' => 'StringTrim'), 
      ), 
      'validators' => array(
       array(
        'name' => 'StringLength', 
        'options' => array(
         'encoding' => 'UTF-8', 
         'min' => 4, 
         'max' => 30, 
        ), 
       ), 
       array(
        'name' => 'identical', 
        'options' => array('token' => 'password') 
       ), 
      ), 
     ))); 

работает нормально, но не тогда, когда я оставить его пустым в моем редактировать -Режим. Но это необходимо в моем дополнительном режиме. Как я могу принимать пустые поля в моем режиме редактирования, не освобождая пароль для исключения этого пользователя?

ответ

0

Почему не просто требуется пароль bool, который передается в метод проверки, используя это в сочетании с вашими текущими правилами проверки, означает, что при необходимости он проведет проверку. Контроллер мог также определить, было ли значение post/get на этой странице задано и соответствующим образом изменить значение bool.

Его не лучший метод и может быть некоторые фантазии Zend способ сделать это, но руководство не будет покрывать его лол

Пример

public function validate($passRequired = false) 
{ 
    if ($passRequired) { 
     //now run the validation 
    } 
} 
+0

Я не думаю, что это то, что я хочу. Я должен установить свой пароль для истины, когда он находится в режиме добавления. И false в режиме редактирования. Пароль может быть уже пустой, не перезаписывая текущий проход. – Haidy

0

Вы можете попробовать этот код:

if ($this->getRequest()->isPost()) { 
    $form->setData($this->getRequest()->getPost()); 

    if ($form->get("password")->getValue() == ""){ 
    $form->getInputFilter()->remove('password'); 
    $form->getInputFilter()->remove('password_r'); 
    } 

    if ($form->isValid()) { 
    // ... 
    } 
    // ... 
} 
Смежные вопросы