Как выбрать определенные столбцы с предложением ORDER BY в Zend Framework2

Я новичок в Zend Framework, и я знаю, что это вопрос начального уровня. Но я полностью запутался.

Я хочу получить только user_id а также user_name сформировать базу данных в порядке убывания user_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 ответ

Просто так, если getUsersTable() Функция написана в вашем контроллере так, как она упоминается в вопросе, вы можете попробовать это -

  1. добавить этот оператор использования в верхней части контроллера -

    использовать 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);

Примечание: если ваш getUsersTable() фактически возвращает объект TableGateway, тогда приведенный выше код будет работать нормально.

Если вы создали файл класса Model-Table, как в учебнике "Альбом", просто измените строку

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

в

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

Надеюсь, это кому-нибудь поможет.

Другие вопросы по тегам