在我的应用程序中,我使用了两个数据库,一个是应用程序数据库,另一个用于为应用程序获取数据 [使用普通 sql 语句获取数据]
我想在我的应用程序中显示第二个数据库的数据,一切正常,甚至分页,但我不知道如何实现排序。使用 Knp 分页包。
分页和排序适用于应用程序数据库的数据。
这是代码
控制器
$db = $this->getDoctrine()->getConnection('2ndDatabase');
$sql = "select * from table1, table2 where somevariable_id = ? and table1.id = table2.id and rownum<=50";
$statement = $db->prepare($sql);
$statement->bindParam('1', $somevariableidvalue);
$statement->execute();
$data = $statement->fetchall();
/**
* @var $paginator \Knp\Component\Pager\Paginator
*/
$paginator = $this->get('knp_paginator');
$result = $paginator->paginate(
$data,
$request->query->getInt('page',1),
$request->query->getInt('limit', 10)
)
看法
<th>{{ knp_pagination_sortable(data, 'ID', 'whattowritehere') }}</th>
<th>{{ knp_pagination_sortable(data, 'Title', 'whattowritehere') }}</th>
<th>{{ knp_pagination_sortable(data, 'Name', 'whattowritehere') }}</th>
代替 whattowritehere 尝试了不同的方法来尝试访问表,但我认为没有模型/实体我无法访问它。我没有为第二个数据库定义任何模型/实体,因此很难创建实体管理器以将 sql 转换为 dql 语句。
我可以把这个sql变成dql吗(这将解决我的问题!我没有为这个数据库定义实体管理器,并且数据库没有模型/实体)
有没有办法操纵它,
$data
因为它适用于分页,我认为也可能有一种排序方法我错过了什么吗?
有可能吗?
whattowritehere - 尝试过的列名(不起作用,没有错误) - data.variablename(数据发布是数组,期望对象) - 数组引用(同样的错误)