2013-07-11 3 views
0

번역 된 엔티티가 있어야하며 콘텐츠를 유지하기 쉬운 방법이 필요합니다. 하나의 "myentity"는 "myentity_trans"를 많이 가질 수 있습니다.smyfony2 형식으로 1 : n 관계를 처리하는 방법은 무엇입니까?

이것은 쉬운 일이지만 symfony2 기본 동작을 너무 많이 변경하지 않고도 쉬운 방법으로 동적 양식이 필요합니다.

"myentity"를 만들거나 편집 할 때 모든 언어에 대해 "myentity_trans"하위 양식이 필요합니다. 이 모든 것을 처리 할 수있는 일반적인 방법이 있습니까? 예를 들어

내 엔티티 :

myentity 
- id 
- status 

myentity_trans 
- id 
- myentity_id 
- language_id 
- ... 

language 
- id 
- name 

편집 1 : 가능한 모든 위해

$builder 
    ->add('name') 
    ->add('trans', 'collection', array(
      'type' => new RetailerTransType(), 
      'allow_add' => true, 
      'allow_delete' => true 
    )); 

지금 내가 좋아하는 빈 양식 : 내가 엔티티와 관련있어 경우, 편집에서 작동 여기 내 양식 구성 따라서 사용자는 쉽게 번역을 만들 수 있습니다. 쿼리 빌더를 사용하려고했지만 콜렉션 유형이 작동하지 않습니다. 쉽게 KnpLabs\DoctrineBehaviors\Translatable 가능한 특성으로 5.4+ PHP를 사용하는 경우 symfony2가 Stof\DoctrineExtensionsBundle

... 또는 내 팁을 사용하여 통합 할 수

+0

참조 : http://symfony.com/doc/current/cookbook/form/form_collections.html – stwe

+0

그 동안 내가 발견 한 것이 있습니다. 모든 언어를 빈 형식으로 만들려고이 언어 표와 어떻게 연결할 수 있습니까? 다른 자바 스크립트 요청없이 가능한 경우. – Daniel

+0

아니요, 빈 폼을 추가하려면 javascript가 필요합니다. 하지만 서버에 대한 요청은하지 마십시오. 빈 하위 폼의 프로토 타입이 이미 html에 있습니다. –

답변

0

당신은 Gemo\DoctrineExtensions\Translatable를 사용해야 하나.

양식과 함께 잘 통합하려면 a2lix\TranslationFormBundle을 사용하십시오. 이 번들은 원하는 언어를 정확하게 제공합니다.

DoctrineBehaviors \ Translatable 및 사용하기 편리한 로케일 프록시 사용에 대한 빠른 통찰력을 얻으려면 my answer here을 참조하십시오.

그냥 ... 프록시 라인을 포함, 클래스 EntityEntityTranslation을 만들 $entity->getProperty()

전화 -> 현재 로케일이 자동으로 적용. 쉽게 할 수있는대로 :-)

관련 문제