【问题标题】:(Why) Is Zend\Db\ResultSet a TableGateway Feature?(为什么) Zend\Db\ResultSet 是 TableGateway 功能吗?
【发布时间】:2013-03-22 16:52:32
【问题描述】:

Zend\Db\TableGateway\TableGateway 的 Zend Framework 2 文档说:

[Zend\Db\TableGateway\TableGateway] 构造函数可以采用3 种不同形式 的特征:作为单个特征对象,作为FeatureSet 对象,或作为要素对象数组

TableGateway 构造函数实际上是checks 类型。

因此,TableGateway 构造函数的第四个参数需要与Feature\AbstractFeatureFeature\FeatureSet 兼容,或者是Feature\AbstractFeature 兼容对象的数组。

model part of the Get Started tutorial 中创建了一个TableGateway 类型的对象,它得到一个Zend\Db\ResultSet\ResultSet 作为第四个参数:

class Module
{
    // getAutoloaderConfig() and getConfig() methods here

    // Add this method:
    public function getServiceConfig()
    {
        return array(
            'factories' => array(
                ...
                'AlbumTableGateway' => function ($sm) {
                    $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                    $resultSetPrototype = new ResultSet();
                    $resultSetPrototype->setArrayObjectPrototype(new Album());
                    return new TableGateway('album', $dbAdapter, null, $resultSetPrototype);
                },
            ),
        );
    }
}

ResultSet 不是 instanceof AbstractFeature。但它有效。

它是如何工作的?

【问题讨论】:

    标签: zend-framework2 zend-db tablegateway


    【解决方案1】:

    $feature第三个参数,参见TableGateway#31

    第四个参数需要兼容ResultSetInterface

    【讨论】:

    • 哎呀...好吧,我想我需要休息一下。 :) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    相关资源
    最近更新 更多