public function findByRelated(Context $context, Field $field, Module $module, Container $container)
 {
     $qb = $this->createQueryBuilder();
     $qb->addSelect('*');
     $qb->from($this->buildEavQuery($module), EavTables::CONTAINER_PREFIX)->join('BigfishEavBundle:Related', 'Related', 'ON', EavTables::CONTAINER_PREFIX . '.container_id = Related.to_container')->where($qb->expr()->eq(EavTables::CONTAINER_PREFIX . '.culture', ':culture'))->setParameter('culture', 'nl')->andwhere($qb->expr()->eq(EavTables::CONTAINER_PREFIX . '.module_id', ':module_id'))->setParameter('module_id', $module->getId())->andWhere($qb->expr()->eq('Related.from_container', ':container_id'))->setParameter('container_id', $container->getId())->andWhere($qb->expr()->isNull(EavTables::CONTAINER_PREFIX . '.deleted'))->andWhere($qb->expr()->eq('Related.field_id', ':field_id'))->setParameter('field_id', $field->getId())->orderBy(EavTables::CONTAINER_PREFIX . '.sequence', 'ASC');
     $qb->orderBy(EavTables::CONTAINER_PREFIX . '.sequence', 'ASC');
     $result = $qb->getQuery()->getResult();
     return $result;
 }
 /**
  * @param Module    $module
  * @param Container $container
  *
  * @return array
  */
 public function find(Container $container)
 {
     if (null == $this->module) {
         throw new \Exception('First set a module');
     }
     $data = $this->em->getRepository('BigfishEavBundle:Container')->getFormData($container->getId(), $this->module->getId(), $this->language);
     return $this->columnMapper->map($data);
 }
 /**
  * Remove all related containers.
  *
  * @param Container $container
  * @param Field     $field
  */
 public function removeRelatedContainers(Container $container, Field $field)
 {
     $findRelated = $this->getEntityManager()->getRepository('BigfishEavBundle:Related')->findBy(array('field' => $field, 'fromContainer' => $container->getId()));
     $flush = false;
     foreach ($findRelated as $delete) {
         $this->getEntityManager()->remove($delete);
         $flush = true;
     }
     if ($flush) {
         $this->getEntityManager()->flush();
     }
 }
 /**
  * @Route("/module/grid/item/delete/{module}/{container}/{fromField}/{fromContainer}", name="module_grid_item_delete")
  */
 public function deleteAction(Request $request, Module $module, Container $container, Field $fromField, Container $fromContainer)
 {
     $form = $this->createForm(new DeleteContainerType($container, $module));
     if ($this->formHandler->handleDelete($form, $request, $container)) {
         $url = $this->generateUrl('module_grid_item_index', array('container' => $container->getId(), 'module' => $module->getId(), 'fromField' => $fromField->getId(), 'fromContainer' => $fromContainer->getId()));
         return new JsonResponse(array('success' => true, 'url' => $url));
     }
     return $this->render('BigfishEavBundle:Default:delete.html.twig', array('form' => $form->createView(), 'actionUrl' => $this->generateUrl('module_grid_item_delete', array('container' => $container->getId(), 'module' => $module->getId(), 'fromField' => $fromField->getId(), 'fromContainer' => $fromContainer->getId()))));
 }