2016-12-04 49 views
0

在我的module.php文件中,我想通過Zend Framework中的TableGateway類傳遞多個表名,但我找不到任何文檔,除了它被限制爲一個表。這個(TableGateway)類的phpdoc表示可以傳遞一個數組,但是我不確定它是否接受多個表。可以TableGateway使用多個表Zend Framework 2

例如Module.php:

'Application\Model\LoginModel' => function($sm) { 
    $table_gateway = $sm->get('LoginService'); 
    $table = new LoginModel($table_gateway); 
    return $table; 
}, 

'LoginService' => function($sm) { 
    $db_adapter = $sm->get('Zend\Db\Adapter\Adapter'); 
    $result_set_prototype = new ResultSet(); 
    $result_set_prototype->setArrayObjectPrototype(new Login()); 
    return new TableGateway(array('admins', 'members'), $db_adapter, null, $result_set_prototype); 
} 

是否有可能做到這一點,有多個表引用或約束這樣的呢,還是僅爲設計允許一個表中的每個實例?

回答

1

不,它不是。表網關對象旨在提供一個表示數據庫中的表的對象。 Array可以傳遞給構造函數,但如果你通過它,你會得到InvalidArgumentException。請檢查該代碼

https://github.com/zendframework/zend-db/blob/release-2.8.2/src/TableGateway/TableGateway.php#L34,L35

請看再次TableGateway旨意在這裏的文檔

https://framework.zend.com/manual/2.4/en/modules/zend.db.table-gateway.html

+0

感謝!我也這麼想。 – user2101411