- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго времени суток!
Вот собственно в чем вопрос:
Zend Framework 2 (SELECT) - не выбирает `id`, т.е. все поля выбирает, а `id` почему то нет.
БД на mysql:
indexAction в контроллере:
public function indexAction(){$userTable = $this->getServiceLocator()->get('UserTable');
$viewModel = new ViewModel(
array(
'users' => $userTable->fetchAll()
)
);
return $viewModel;
}
userTable.php:
public function fetchAll(){
$resultSet = $this->tableGateway->select();
return $resultSet;
}
view:
Выбирает все поля кроме `id`, никак не могу понять почему.
Подскажите люди добрые.
РЕШЕНО!
Вообщем никто мне не помог, промучился и нашел ответ сам.
Ну почти сам. Надеюсь когда-нибудь кому-нибудь пригодится.
Вот ответ на вопрос:
'UserTableGateway' => function ($sm){
$dbAdapter = $sm->get('\Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new User());
return new TableGateway('user', $dbAdapter, null, $resultSetPrototype);
},
Использует класс: User(), в котором определены след методы:
<?php
namespace Users\Model;
class User{
public $id;
public $name;
public $email;
public $password;
public function setPassword($clear_password){
$this->password = md5($clear_password);
}
public function exchangeArray($data){
$this->name = (isset($data['name'])) ? $data['name'] : null;
$this->email = (isset($data['email'])) ? $data['email'] : null;
if(isset($data['password'])){
$this->setPassword($data['password']);
}
}
}
Добавляем
$this->id = (isset($data['id'])) ? $data['id'] : null;
перед.
Все инециализировали и id больше не null, ну пока существет естественно.
$this->name = (isset($data['name'])) ? $data['name'] : null;
StM7, http://stackoverflow.com/questions/23275302/cant-retrieve-id-value-when-using-zend-tablegateways-select