2016-05-21 10 views
3

EDIT: Diese Frage ist für alte Version von Phalcon. Phalcon hat jetzt Version 3.1, auf der dieses Problem behoben scheint.So löschen Sie Phalcon 2.0 Formularelement Werte

Ich habe Controller-Aktion folgende unterzeichnen Benutzer.

public function signinAction() 
{ 
    $form = new SigninForm; 
    if ($this->security->checkToken()) 
    { 
     try 
     { 
      $this->auth->signin($form); 
     } catch (Exception $e) 
     { 
      $this->flash->error($e->getMessage()); 
     } 
    } 

    $form->clear(); 
    $form->get('password')->clear(); 
    \Phalcon\Tag::resetInput(); 
    $this->view->form = $form; 
} 

Die oben clear Methoden nicht funktionieren und ich Passwortfeld mit Benutzereingabe repopulated bekommen.

EDIT: Ich bin mit Phalcon 2.0.10

Antwort

1

hatte ich das gleiche Problem gerade gestern. Überraschenderweise in meinem Fall $form = new RegistrationFrom($user); hat nicht geholfen.

Stellt sich heraus, wenn Sie $user->setPassword(''); tun (unter der Annahme, dass Sie eine Entität an das Formular gebunden haben) wird es den Wert löschen, aber wenn Sie es auf null setzen wird es nicht löschen, stattdessen wird es den Wert anzeigen anfänglich an das Formular gebunden.

1

Ab Dokumentation sagt:

öffentliche clear() geerbt von Phalcon \ Forms \ Eleme nt Löscht jedes Element in der Form auf den Standardwert

Ich nehme an, Sie nicht Standardwert eines Feldes erklärt.

Bitte, tun Sie einen Standardwert für dieses Formularelement definieren, zB .:

use \Phalcon\Forms\Element\Password; 

class SigninForm extends ... { 

    // ... 

    $passwordField = new Password('password'); 
    $passwordField->setDefault(''); 

    // ... 

    $this->add($passwordField); 

Nach ordnungsgemäßem Standardwert eines Feld definiert, clear() Aufruf der Methode beginnen sollte wie erwartet funktionieren.

1
$form->getElements()['password']->setAttribute('values' , ''); 
0

können Sie versuchen, diese

$ form-> get ('password') -> Reset();