2017-03-02 24 views
0

我試圖參照從tutorial建立出錯形式

指導,以創建一個基本形式這是我的版本形式

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" 

     ]); 

    } 
} 

和我得到這個錯誤

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

請告訴我,如果我錯了代碼的任何部分。

+0

不使用symfony1,它幾乎和我一樣古老。 – DevDonkey

+0

Symfony 1.4不再被維護,你不應該浪費時間學習它,反而學習Symfony2 – goto

+0

你正在使用哪個版本的PHP? –

回答

8

有在你的代碼的幾個錯誤,開頭:

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

,你可能想寫:

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

你得到的致命錯誤是因爲這段代碼片段(您正試圖給函數返回值賦值):

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

一個更好的版本是:

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

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

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

應用這些改變後,你的問題應該得到解決。