2

在我的应用程序中,我使用了两个数据库,一个是应用程序数据库,另一个用于为应用程序获取数据 [使用普通 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(数据发布是数组,期望对象) - 数组引用(同样的错误)

4

0 回答 0