2014-10-22 3 views
0

내가 다른 스레드 on stackoverflow here을 발견하고 답변 중 하나가 작동 그래서Symfony2 -

해결 예상대로 나뭇 가지 양식이 작동하지 바르. 다음 코드를 사용하면 어떤 이유로 작동하지 않습니다!

<pre>{{ dump(form.parent.parent.parent.vars[form.parent.type.vars.value ~ '_choices']|default('')) }}</pre> 

POST

ORIGINAL 난 당신이 headscratcher 저를 도와 드릴 수 있습니다 기대하고있다. 모두가 제공 할 수있는 모든 지침은 크게 감사하겠습니다.

는 다음 코드를 수행 할 수 있습니다 내가 그 코드를 실행하면

<pre>{{ dump(form.parent.parent.parent.vars) }}</pre> 

, 나는 배열의 고장을 얻을. 단축 버전은 아래에 있습니다.

array (size=28) 
    'page_choices' => 
    array (size=2) 
     1 => string 'Test Page 1' (length=11) 
     2 => string 'Test Page 2' (length=11) 
    'file_choices' => 
    array (size=0) 
     empty 

이제 다음을 수행하여 예상대로 "page_choices"를 얻습니다. 나는 모두 함께 넣으면

<pre>{{ dump(form.parent.type.vars.value ~ '_choices') }}</pre> 

문제는 온다 : 나는 "page_choices"배열 키에서 데이터를 얻기 위해 함께 코드를 삽입하려고하면

<pre>{{ dump(form.parent.parent.parent.vars[form.parent.type.vars.value ~ '_choices']) }}</pre> 

, 내가 얻을 다음 오류 :

Key "_choices" for array with keys "value, attr, form, id, name, full_name, disabled, label, multipart, block_prefixes, unique_block_prefix, translation_domain, cache_key, read_only, errors, valid, data, required, max_length, pattern, size, label_attr, compound, method, action, submitted, page_choices, file_choices" does not exist

"page_choices"가 키로 표시됩니다. 두 파트가 예상대로 왜 덤프되는지는 확실치 않지만 결합 할 때 키의 "_choices"만 가져 오는 것과 같습니다. 나는 왜 그들이 함께 일하지 않고 함께 일 하는지를 알 수 없다. 다음 블록의

편집

모두는 더욱 혼란 나에게 어떤 "사실"로 돌아갑니다.

<pre>{{ form.parent.type.vars.value ~ '_choices' in form.parent.parent.parent.vars|keys ? "True" : "False" }}</pre> 

<pre>{{ form.parent.parent.parent.vars[form.parent.type.vars.value ~ '_choices'] is defined ? "True" : "False" }}</pre> 
+0

'{{dump (attribute (form.parent.parent.parent.vars, form.parent.type.vars.value ~ '_choices'))}}'는 무엇을 의미합니까? '{{dump (form.parent.parent.parent.vars [ 'page_choices'])}}'시도 했습니까? (나는 그 일을 기대하지만 확실하게하고 싶다.) 마지막으로'{% set temp = form.parent.type.vars.value ~ '_choices'%}'와'{{dump (form. parent.parent.parent.vars [temp])}}'? – sjagr

+0

나는 sjagr의 답장을 시도 할 것이다. 내 충고는 form.parent.parent.parent.vars [form.parent.type.vars.value ~ '_choices']와 같은 커다란 것을하려고 할 때마다 아마 갈 방법이 아니며 당신이 원하는 것을 성취 할 수있는보다 쉬운 방법으로, 나뭇 가지 프론트 엔드를 가능한 한 깨끗하게 유지하고 지나치게 복잡하지 않게 최선을 다할 것입니다. –

+0

@sjagr 제안에 따라 수동으로 "page_choices"를 키로 입력하면 실제로 원하는 데이터를 얻습니다. vars를 쉼표로 구분하는 첫 번째 주석을 입력하면 동일한 오류가 발생합니다.또한 값을 변수로 저장하기 위해 나뭇 가지 설정 방식을 시도했지만 동일한 오류가 지속됩니다. –

답변

0

그래서 올바르게 작동하려면 내 코드 뒤에 기본 ('')을 추가해야합니다. 이유는 모르겠지만 다음 코드는 작동이 끝났습니다!

<pre>{{ dump(form.parent.parent.parent.vars[form.parent.type.vars.value ~ '_choices']|default('')) }}</pre> 

나와 함께 알아 내려고 노력해 주신 모든 분들께 감사드립니다.