我正在尝试将两个表连接起来,并从knppaginator获取排序结果集。这是我的密码。
视图
<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>
控制器
$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, $request->query->getInt('page', 1), 10
);
模型模型
class Model
{
private $id;
汽车模型
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
class Car
{
private $id;
private $name;
private $code;
private $model;
public function getModel(): ?Model
{
return $this->model;
}
public function setModel(?Model $model): self
{
$this->model = $model;
return $this;
}
}
当我在表体内得到article.model.name时,它就工作了。但是
knp_pagination_sortable(pagination, 'Version', 'c.model.name')
仅显示此错误
在给定的查询组件中没有这样的字段[model.name],
别名由[C]
为了提高可见性,我删除了一些不需要的代码。谢谢