如何在zend框架2中使用ORDER BY子句选择特定列

时间:2014-08-26 07:43:10

标签: zend-framework2 tablegateway

我是zend框架的新手,我知道这是一个初学者级别的问题。但我完全搞砸了。

我只想以user_id的降序检索user_nameuser_id表单数据库。

我正在使用tablegateway。

我将getUsersTable()函数称为

$result = $this->getUsersTable()->select();

和getUsersTable()函数是

 public function getUsersTable()
    {
     if(!$this->usersTable)
     {

      $this->usersTable = new TableGateway('eo_user',$this->getServiceLocator()->get('Zend\Db\Adapter\Adapter')
      );
     }   
     return $this->usersTable;

    }

我搜索了类似的问题,但解决方案与tablegateway无关。

我应该做些什么改变?请帮忙。

1 个答案:

答案 0 :(得分:1)

如果getUsersTable()函数按照问题中提到的方式在Controller中编写,那么你可以试试这个 -

  1. 在Controller的顶部添加此use语句 -

    使用Zend \ Db \ Sql \ Select;

  2. 在你的行动中写下这个 -

    $select = new Select('eo_user'); $select->columns(array('user_id', 'user_name')); $select->order('user_id DESC');

    $result = $this->getUsersTable()->selectWith($select);

  3. 注意:如果你的getUsersTable()实际上正在返回TableGateway对象,那么上面的代码将正常工作。

    如果您已经创建了类似于'相册'中的模型表类文件教程然后只需更改行

    $result = $this->getUsersTable()->selectWith($select); 
    

    $result = $this->tablegateway->selectWith($select);
    //This is to be written in that Table Class file.
    

    我希望它有所帮助。

相关问题