gpt4 book ai didi

php - ZF2 中的 Zend_Db_Table_Abstract::createRow()

转载 作者:搜寻专家 更新时间:2023-10-31 21:38:18 26 4
gpt4 key购买 nike

在 ZF1 中,有一个函数 Zend_Db_Table_Abstract::createRow() 可以创建一个新的空白行。然后可以对该新行进行操作并将其存储在表中。 rowID 使用自动增量自动设置,值使用数据库架构中的默认值填充。

我如何在 ZF2 中执行此操作? Zend_Db_Table_Abstract::createRow() 有替代品吗?

最佳答案

深入研究 ZF2 源代码,我发现了如何取回原型(prototype)。这是受到 Zend\Db\TableGateway\AbstractTableGateway::executeSelect()Zend\Db\ResultSet\ResultSet 的高度启发。为了方便起见,我在我的 AbstractMapper 中使用了这个方法。正如您可能已经猜到的那样,这仅适用于 ResultSet(与 HydratingResultSet 相对)。但我想这也是您的情况,否则您将不需要这样的方法。

<?php

namespace Application\Mapper;

use Zend\Db\TableGateway\TableGateway;

class AbstractMapper
{
/**
* @var \Zend\Db\TableGateway\TableGateway
*/
protected $tableGateway;

public function __construct(TableGateway $tableGateway)
{
$this->tableGateway = $tableGateway;
}

/**
* Create and returns a new row which is not yet saved in database
* @return AbstractModel
*/
public function createRow()
{
$resultSet = $this->tableGateway->getResultSetPrototype();
$newRow = clone $resultSet->getArrayObjectPrototype();

return $newRow;
}
}

关于php - ZF2 中的 Zend_Db_Table_Abstract::createRow(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13958736/

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