Слишком много строк с отношением «многие ко многим» omines / datatables-bundle - PullRequest
0 голосов
/ 14 февраля 2019

Я использую bundle omines / datatables-bundle для создания таблиц в моем приложении Symfony.Когда я создаю пользовательский запрос, который соединяется с полем, имеющим отношение «многие ко многим», он возвращает слишком много строк.

Я использую Symfony 4.2 и пакет omines / datatables-bundle.Конечный результат - неправильное количество общих результатов и много пустых страниц в моей таблице.

Вот так создается моя таблица

class TestTableType implements DataTableTypeInterface
{
    public function configure(DataTable $dataTable, array $options)
    {
        $dataTable
            ->add('id',
                NumberColumn::class,
                array(
                    'label'            => 'ID',
                    'globalSearchable' => false
                )
            )
            ->createAdapter(ORMAdapter::class,
                array(
                    'entity' => Test::class,
                    'query'  => function (QueryBuilder $builder)
                    {
                        $builder
                            ->distinct()
                            ->select('t')
                            ->from(Test::class, 't')
                            ->leftJoin('t.products', 'prod');
                    }
                )
            )
        ;
    }
}

, и вот сколькоВ моем классе сущностей определены многие отношения.

**
* @ORM\ManyToMany(targetEntity="App\Entity\Product", inversedBy="tests")
* @ORM\JoinTable(name="product_has_test")
*/
private $products;

public function __construct()
{
    $this->products = new \Doctrine\Common\Collections\ArrayCollection();
}

вместе с геттерами и сеттерами

public function addProduct(\App\Entity\Product $product)
{
    $this->products[] = $product;

    return $this;
}

public function removeProduct(\App\Entity\Product $product)
{
    $this->products->removeElement($product);
}

public function getProducts()
{
    return $this->products;
}

Что может быть причиной этого?И как я могу это исправить?

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