2017-03-02 6 views
0

Ich versuche, eine Grundform zu erstellen, indem die Führung von tutorialFehler beim Erstellen von Form

beziehen Dies ist meine Version von Form

class UsersForm extends BaseUsersForm 
{ 
    public function configure() 
    { 
     $this->useFields(["name,email"]); 

     $this->setWidgetSchema("email") = new sfWidgetFormInputText(); 
     $this->setWidgetSchema("name") = new sfWidgetFormInputText(); 

     $this->validatorSchema["email"] = new sfValidatorEmail(); 
     $this->validatorSchema["name"] =new sfValidatorString(["max_length" => "30"]); 

     $this->widgetSchema->setLabels([ 

      "email" => "Email Address", 
      "name" => "User name" 

     ]); 

    } 
} 

Und ich habe diesen Fehler

Fatal error: Can't use method return value in write context

Bitte sagen Sie mir, wenn ich irgendeinen Teil des Codes falsch gemacht habe.

+0

verwende nicht symfony1, es ist fast so alt wie ich. – DevDonkey

+0

Symfony 1.4 wird nicht mehr gepflegt, du solltest keine Zeit damit verschwenden, es zu lernen, stattdessen Symfony2 lernen – goto

+0

Welche Version von PHP verwendest du? –

Antwort

8

Es gibt mehrere Fehler im Code, beginnend mit:

$this->useFields(["name,email"]);

wo Sie wahrscheinlich schreiben wollte:

$this->useFields(["name", "email"]);

Der schwerwiegende Fehler Sie bekommen ist wegen Dieses Snippet (Sie versuchen, dem Rückgabewert der Funktion einen Wert zuzuweisen):

$this->setWidgetSchema("email") = new sfWidgetFormInputText(); 
$this->setWidgetSchema("name") = new sfWidgetFormInputText(); 

eine bessere Version wäre:

$arWidgets = [ 
    "email" => new sfWidgetFormInputText(), 
    "name" => new sfWidgetFormInputText(), 
]; 

$arValidators = [ 
    "email" => new sfValidatorEmail(), 
    "name" => new sfValidatorString(["max_length" => "30"]), 
]; 

$this->setWidgets($arWidgets); 
$this->setValidators($arValidators); 

Nach der Anwendung sollte diese Änderungen Ihr Problem gelöst werden.