symfony 2.8 Как получить список из нескольких секторов с аккредитациями текущего вошедшего в систему пользователя - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу показать список из нескольких секторов с несколькими аккредитациями под зарегистрированной страницей профиля пользователя.

Как мне показать список в файле ветки?

Список будет выглядеть так.

Sector: Agriculture | Accreditations: A1, A2 ,A3

Sector: Cinematography | Accreditations: C1, C2 ,C3  

Я хочу получить Секторы из таблицы user_sector, которая имеет

user_id | sector_id
 1      | 2
 1      | 3

и аккредитации из таблицы user_accreditation

user_id | accreditation_id
 1      | 1
 1      | 2

Также у меня есть много-к-множество отношений между двумя объектами: Пользователь и Секторы и Пользователь и Аккредитации.

Это моя функция контроллера:

    public function editAction(Request $request)
{
    $user = $this->getUser();

    if (!is_object($user) || !$user instanceof UserInterface) {
        throw new AccessDeniedException('This user does not have access to this section.');
    }

    $form = $this->createAboutMeForm($user);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $this->get("user_manager")->updateUser($user);

        $url = $this->generateUrl('user_dashboard_profile_edit_about_me');

        return new RedirectResponse($url);
    }

    $em=$this->getDoctrine()->getManager();
    $user1 = $em->getRepository('UserBundle:User')->findAll();

    return $this->container->get('templating')->renderResponse(
        'UserBundle:Dashboard/Profile:edit_about_me.html.twig',
        array(
            'form' => $form->createView(),
            'user' => $user,
            'userSectors'=>$user->getSectors(),
            'userAccreditation'=>$user->getAccreditationdata()
        )
    );

}

Файл шаблона:

  <div class="error-container">{{ form_errors(form.sectors) }}</div>
       <span class="label">
           {{ form_label(form.sectors) }}
       </span>
  <div class="field-holder">
       {{ form_widget(form.sectors, {
                'attr': {
                'class': "form-control"
               }
        }) }}
   </div>
   </div>
   <div class="field-row from">
       <div class="error-container">{{ form_errors(form.accreditationdata) }}</div>
      <span class="label">
       {{ form_label(form.accreditationdata) }}
       </span>
     <div class="field-holder custom_hide">
             {{ form_widget(form.accreditationdata, {
                           'attr': {
                           'class': "form-control"
                       }
             }) }}
     </div>
     </div>
     <a href="javascript:void(0)" id="add-sector-accreditation">Add</a>
     <ul>
          {% for sectors in userSectors %} 
              <li><span>{{sectors.name}}</span></li> 
          {% endfor %} |
          {% for accre in userAccreditation %} <li>
               <span>{{accre.name}}</span></li> 
          {% endfor %}
     </ul>

Кто-нибудь?

1 Ответ

0 голосов
/ 22 февраля 2019

У вас есть проблема с моделированием ваших данных.
Поскольку они нам доступны, у вас нет никакой связи между секторами и аккредитацией, поэтому вы не можете их агрегировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...