현재 사용자의 모든 친구를 나열하는 엔티티 유형 양식이 있습니다. 예 : 새 그룹을 만드는 데 사용됩니다. 이제 동일한 양식을 사용하여 동일한 그룹에 사용자를 추가하려는 경우 Choice 필드는 아직 그룹에없는 현재 사용자의 모든 친구를 표시해야합니다. 난 그냥 그룹에 이미있는 옵션 (사용자)를 제거하는 양식 이벤트를 사용하여 생각.symfony2 선택 (엔티티) 양식에서 옵션을 동적으로 제거하십시오.
내 리스너는 다음과 같습니다 클래스 FriendSelectListener이 EventSubscriberInterface {
public static function getSubscribedEvents() {
// Tells the dispatcher that we want to listen on the form.pre_set_data
// event and that the preSetData method should be called.
return array(FormEvents::PRE_SET_DATA => 'preSetData');
}
public function preSetData(FormEvent $event) {
$betRound = $event->getData();
$form = $event->getForm();
$groupForm = $form->get('userGroup');
$usersForm = $groupForm->get('users');
foreach($betRound->getUserGroup()->getUsers() as $user){
if($usersForm->has($user->getId())){
$usersForm->remove($user->getId());
}
}
}
}
를 구현하지만 내 테스트에서 나는 ID를 가진 사용자를 제거하기 때문에 나는 그것을 렌더링 할 수 없습니다 2 다음
키 "2"유형 의 (ArrayAccess와) 객체의 "심포니 \ 구성 요소 \ 양식 \ FO를 : 렌더링하는 동안 다음과 같은 오류 메시지가 rmView는 "라인에서 /var/lib/stickshift/1ed1210eec124c179c45aac4ad484afd/app-root/data/269891/src/Strego/UserBundle/Resources/views/Form/selectFriends.html.twig 에 존재하지 않는 5
는 업데이트 :이가 내 생각과 관련이있을 수 : 만 폼 요소가 아니라 선택을 제거 같은 {ID에 대한 %, 선택의 %의 선택} 나를 위해
{% set user = choice.data %}
<label>
<div class="people-list people-choose unselected" style="width:270px;">
<img src="{{ user.profilePic | imagine_filter('profile_thumb') }}" class="img-polaroid" alt="{{ user.nickname }}">
{#<img src="{{ asset('bundles/stregoapp/img/profile-thumb-90x90.png') }}" alt="Profilbild" class="img-polaroid">#}
<p>{{ form_widget(form[id]) }} <span class="label">einladen</span></p>
<h3>{{ user.nickname }}</h3>
<h3><small>{{ user.firstName }} {{ user.lastName }}</small></h3>
</div>
</label>
{% endfor %}
것 같습니다.
내가 가장 좋은 건 두 폼에 리스너를 중지하고 대신 실제 사용자 그룹 요소를 추가하는 것입니다 생각 기존의 것을 수정하려는 시도. 양식 구성 요소는 신비한 방식으로 작동합니다. – Cerad
양식 요소 만 제거했지만 "선택 사항"자체는 제거하지 않은 것 같습니다. 내 견해와 관련이있을 수 있습니다. 아픈 업데이트 내 질문 – m0c