В моем поисковом фильтре (FormBuilder) , чтобы вернуть список результатов фильтрации, у меня есть форма с отношением к объекту (множественный флажок) ,Не работаетЯ думаю, что у меня есть проблема в моем хранилище для получения массива и результата объекта.
<?php
namespace AdminBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Validator\Constraints as Assert;
use AdminBundle\Entity\Products;
use AdminBundle\Form\ProductsType;
class ProductsController extends Controller
{
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
$form = $this->createFormBuilder()
->add('category', 'entity', array(
'class' => 'AdminBundle:Category',
'label' => false,
'choice_label' => 'name',
'required' => false,
'expanded' => true,
'placeholder' => 'Tous',
'multiple' => true
))
// ...
;
Это мой репозиторий:
<?php
namespace AdminBundle\Repository;
class ProductsRepository extends \Doctrine\ORM\EntityRepository
{
public function ListAll($data)
{
$query = $this->createQueryBuilder('a')->orderBy('a.updated','DESC');
// CATEGORY
if($data['category'] !== null)
{
$query
->innerJoin('a.category', 'cat')
->andWhere('cat.id = :catid')
->setParameter('catid', $data['category'])
;
/*
$query
->leftJoin('a.category', 'category')
->setParameter('category', $data['category'])
;
*/
}
// ...
}
}
Этот репозиторий работает только для одного выбора: multiple => false
.Когда я устанавливаю multiple => true
, я получаю нарушение SQL в отношении объекта против массива.
Как мне работать с хранилищем для нескольких флажков?