2016-07-04 4 views
0

나는 동적으로 블록을 작성하는 모듈을 작성했습니다. 각 블록에는 Form이 있습니다. 내 문제는 내가 각 양식에 대한 동적 인 형태의 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

미안 : 아직 말씀 드릴 수 없습니다 때, 나는거야 답변

으로 내가 줄리의 Pelletier의 대답에 표시되는 문제를 내 코멘트를 작성, 그 랜드는 고유 번호를 생성하지 않습니다, 그래서 각에 추가하는 것이, 개인 정적 정수 슬러그를 정의하는 제안 fo rmId 그리고 그것을 증가시킵니다. 예를

:

private static $slug = 0; 

당신은 하나의 마지막 두 줄을 결합 할 수 있습니다

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

__construct()

self::$slug = 0; 

및 getFormId에서()에, 난 그냥 썼다 그것은 가독성을위한 것입니다.

희망이 있습니다.