Как выбрать определенные столбцы с предложением 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()
Функция написана в вашем контроллере так, как она упоминается в вопросе, вы можете попробовать это -
добавить этот оператор использования в верхней части контроллера -
использовать Zend\Db\Sql\Select;
напиши это в своем действии -
$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.
Надеюсь, это кому-нибудь поможет.