2016-07-04 46 views
0

我寫了一個動態創建塊的模塊。在每個塊我有一個表格。我的問題是,我想一個表單的動態表單ID,但在我ModuleBlockForm.php我只能定義一個靜態與Drupal 8動態表單ID

public function getFormId() { 
    return 'mymodule_block_form'; 
    } 

,但我想是這樣的:

public function getFormId() { 
    return 'mymodule_block_form_' . $foo; 
    } 

是那可能嗎?

感謝您的幫助

回答

0

您應該將它設置爲構造函數中的類屬性。它可以是傳遞給對象的構造或者隨機,例如:

this->formId = rand(11111, 99999); 

......並把它作爲:

public function getFormId() { 
    return 'mymodule_block_form_' . this->formId; 
} 
1

遺憾:因爲我還不能發表評論,我會寫我的評論作爲一個答案

朱莉佩爾蒂埃的回答中看到的問題,即蘭特不會產生一個唯一的號碼,所以我建議定義一個私有靜態整數蛞蝓,你附加到每個FO rmId並增加它。

例如:

private static $slug = 0; 

,並在__construct()

self::$slug = 0; 

和getFormId()

self::$slug += 1; 
return 'mymodule_block_form_' . self::$slug; 

您可以在一個最後兩行結合起來,我只是寫它爲了便於閱讀。

希望有所幫助。