gpt4 book ai didi

php - 使用 Zend TableGateway 的 select() 时无法检索 id 值

转载 作者:行者123 更新时间:2023-11-29 06:37:58 25 4
gpt4 key购买 nike

我尝试使用 TableGateway 的 select() 方法显示我在 MySql 表中的所有内容:

<section class="user_manager_index">
<h2>Users</h2>
<?php
$tableGateway = $this->tableGateway;
$rowset = $tableGateway->select();

foreach ($rowset as $row)
{
echo $row->id . ' ' . $row->name . ' ' . $row->email . '<br>';
}
?>
</section>

它返回表中的所有值,除了 id 值,它只是不写任何东西,比如 $row->id 的值是 NULL。我做错了什么?

附加信息:我的 TableGateway 工厂:

'UserTableGateway' => function($sm)
{
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new User());
return new TableGateway('user', $dbAdapter, null, $resultSetPrototype);
}

附加信息:我的用户类:

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']);
}
}
}

最佳答案

您的 UserexchangeArray 方法用于使用 db 值填充属性,它当前不引用 id

public function exchangeArray($data)
{
// populate the id
$this->id = isset($data['id']) ? $data['id'] : null;

$this->name = (isset($data['name'])) ?
$data['name'] : null;
$this->email = (isset($data['email'])) ?
$data['email'] : null;
if (isset($data['password']))
{
$this->setPassword($data['password']);
}
}

关于php - 使用 Zend TableGateway 的 select() 时无法检索 id 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23275302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com