在我的存储库中使用此代码:
public function getListAccount($nombreParPage, $page) {
if ((int) $page < 1) {
throw new \InvalidArgumentException('L\'argument $page ne peut être inférieur à 1 (valeur : "' . $page . '").');
}
$qb = $this->createQueryBuilder('u');
$qb->join('u.account', 'a');
$qb->join('a.company','c');
$qb->where($qb->expr()->like('u.roles', ':param'))
->orWhere($qb->expr()->like('u.roles',':param1'))
->OrderBy('a.name')
->setParameter('param', 'param1')
->setParameter('param1','param2');
$qb->setFirstResult(($page - 1) * $nombreParPage)
->setMaxResults($nombreParPage);
return new Paginator($qb);
}
在我的树枝上
{% for user in users%}
<tr>
{# <th scope="row" class="column1"><input type="checkbox"/></th>#}
<td class="selectaccount"><input type="checkbox" name="itemlist" value="{{ user.id }}"/>
</td>
<td>{{ user.account.id }}</td>
<td>{{ user.account.company.name }}</td>
<td>{{ user.username }}</td>
<td>{{ user.account.name }}</td>
<td>{{ user.account.lastname }}</td>
<td>{{ user.account.credit }}</td>
<td>{{ user.account.dateCreation|date('Y-m-d H:i:s') }}</td>
<td>{{ user.account.dateExpiration|date('Y-m-d H:i:s') }}</td>
结果是:
**
SQLSTATE [HY000]:常规错误:3065 ORDER BY子句的表达式#1 不在SELECT列表中,引用列'dctrn_result.name_10' 不在SELECT列表中;这与DISTINCT“)
不兼容
**
在渲染模板期间抛出异常(“执行'SELECT DISTINCT id_0 FROM时发生异常(SELECT u0_.id AS id_0,u0_.username AS username_1,u0_.password AS password_2,u0_.salt AS salt_3,u0_.FieldMail AS FieldMail_4,u0_.FieldFax AS Fie
我正在使用mysql 5.7而且我不知道我应该做什么:这个脚本适用于我以前的mysql版本但不适用于mysql 5.7和mysql 7
答案 0 :(得分:1)
尝试添加列a.name:
$qb = $this->createQueryBuilder('u');
$qb->select('u, a.name');
答案 1 :(得分:0)
在您的查询构建器中,紧跟在->join()
:
$qb = $this->createQueryBuilder('u');
$qb->join('u.account', 'a');
$qb->addSelect('a') /* add account to your selection */
$qb->join('a.company','c');
$qb->where($qb->expr()->like('u.roles', ':param'))
->orWhere($qb->expr()->like('u.roles',':param1'))
->OrderBy('a.name')
->setParameter('param', 'param1')
->setParameter('param1','param2');
$qb->setFirstResult(($page - 1) * $nombreParPage)
->setMaxResults($nombreParPage);