Quantcast
Channel: Active questions tagged symfony4 - Stack Overflow
Viewing all articles
Browse latest Browse all 3924

KnpPaginator not works on joined tables

$
0
0

I'm trying to get two tables joined and get a sorted result set from KnpPaginator. Here is my code.

View

<table class="table table-bordered"><tr><th>{{ knp_pagination_sortable(pagination, 'Id', 'c.id') }}</th><th{% if pagination.isSorted('c.name') %} class="sorted"{% endif %}>{{ knp_pagination_sortable(pagination, 'Name', 'c.name') }}</th><th>{{ knp_pagination_sortable(pagination, 'Version', 'c.model.name') }}</th></tr>       {% for article in pagination %}<tr {% if loop.index is odd %}class="color"{% endif %}><td>{{ article.id }}</td><td>{{ article.getName }}</td><td>{{ article.model.name }}</td></tr>        {% endfor %}</table>

Controller

$em = $this->get('doctrine.orm.entity_manager');        $dql = "SELECT c FROM App\Entity\Car c";        $query = $em->createQuery($dql);        $paginator = $this->get('knp_paginator');        $pagination = $paginator->paginate(                $query, /* query NOT result */ $request->query->getInt('page', 1)/* page number */, 10/* limit per page */        );

Model model

/** * @ORM\Entity(repositoryClass="App\Repository\ModelRepository") */class Model{    /**     * @ORM\Id()     * @ORM\GeneratedValue()     * @ORM\Column(type="integer")     */    private $id;    /**

Car model

<?phpnamespace App\Entity;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass="App\Repository\CarRepository") */class Car{    /**     * @ORM\Id()     * @ORM\GeneratedValue()     * @ORM\Column(type="integer")     */    private $id;    /**     * @ORM\Column(type="string", length=255, nullable=true)     */    private $name;    /**     * @ORM\Column(type="string", length=255, nullable=true)     */    private $code;    /**     * @ORM\ManyToOne(targetEntity="App\Entity\Model",cascade={"refresh","merge"}, inversedBy="cars")     * @ORM\JoinColumn(nullable=false)     */    private $model;    public function getModel(): ?Model    {        return $this->model;    }    public /** * @param $ */function setModel(?Model $model): self    {        $this->model = $model;        return $this;    }}

When I get article.model.name inside table body it works. But knp_pagination_sortable(pagination, 'Version', 'c.model.name') only show this error

There is no such field [model.name] in the given Query component,aliased by [c]

I have removed some unwanted code for better visibility. Thanks


Viewing all articles
Browse latest Browse all 3924

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>