Zend Framework 2 (SELECT) - не выбирает `id`

SM
На сайте с 28.11.2014
Offline
0
457

Доброго времени суток!

Вот собственно в чем вопрос:

Zend Framework 2 (SELECT) - не выбирает `id`, т.е. все поля выбирает, а `id` почему то нет.

БД на mysql:

"id INT AI primary key,

name TEXT,
email varchar"

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:

<h3>Users</h3>

<table class="table">
<tr>
<th>Id</th>
<th>Name</th>
<th>User ID/Email</th>
<th> </th>
</tr>
<?php foreach ($users as $user) : ?>
<tr>
<td><?php echo $user->id;?></td>
<td><?php echo $this->escapeHtml($user->name);?></td>
<td><?php echo $this->escapeHtml($user->email);?></td>
<td>
<a href="<?php echo $this->url('users/user-manager',
array('action'=>'edit', 'id' => $user->id));?>">Edit</a> |
<a href="<?php echo $this->url('users/user-manager',
array('action'=>'delete', 'id' => $user->id));?>" onclick="return confirm('Are you sure?')">Delete</a>
</td>
</tr>
<?php endforeach; ?>
</table>

<?php print_r($users); ?>

Выбирает все поля кроме `id`, никак не могу понять почему.

Подскажите люди добрые.

SM
На сайте с 28.11.2014
Offline
0
#1

РЕШЕНО!

Вообщем никто мне не помог, промучился и нашел ответ сам.

Ну почти сам. Надеюсь когда-нибудь кому-нибудь пригодится.

Вот ответ на вопрос:

'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;

siv1987
На сайте с 02.04.2009
Offline
427
#2

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий