/** * Find all rows filtered for DataTables * * @param string $search The search string * @param int $sortColumn The column to sort by * @param string $sortDirection The direction to sort the column * @param entity $actor The actor relation * * @return \Doctrine\ORM\Query */ public function findAllForDataTablesByActor($search, $sortColumn, $sortDirection, Actor $actor) { // select $qb = $this->getQueryBuilder(false)->select('p.id, p.name, c.id categoryId, c.name categoryName, b.id brandId, b.name brandName, p.price, p.stock, p.active, p.available, p.highlighted, p.freeTransport, actor.id actorId, actor.name actorName'); // join $qb->join('p.category', 'c')->join('p.brand', 'b')->join('p.actor', 'actor'); $qb->where('actor.id = :actor')->setParameter('actor', $actor->getId()); // search if (!empty($search)) { $qb->andWhere('p.name LIKE :search OR c.name LIKE :search OR b.name LIKE :search OR actor.name LIKE :search')->setParameter('search', '%' . $search . '%'); } // sort by column switch ($sortColumn) { case 0: $qb->orderBy('actor.name', $sortDirection); break; case 1: $qb->orderBy('p.name', $sortDirection); break; case 3: $qb->orderBy('c.name', $sortDirection); break; case 4: $qb->orderBy('b.name', $sortDirection); break; case 5: $qb->orderBy('p.price', $sortDirection); break; case 7: $qb->orderBy('p.stock', $sortDirection); break; case 8: $qb->orderBy('p.active', $sortDirection); break; case 9: $qb->orderBy('p.available', $sortDirection); break; case 10: $qb->orderBy('p.highlighted', $sortDirection); break; case 11: $qb->orderBy('p.freeTransport', $sortDirection); break; } return $qb->getQuery(); }
/** * Creates a form to delete a Actor entity. * * @param Actor $actor The Actor entity * * @return \Symfony\Component\Form\Form The form */ private function createDeleteForm(Actor $actor) { return $this->createFormBuilder()->setAction($this->generateUrl('core_actor_delete', array('id' => $actor->getId())))->setMethod('DELETE')->getForm(); }