2016-12-04 6 views
0

В моем файле module.php я хочу передать несколько имен таблиц через класс TableGateway в Zend Framework, но я не могу найти на нем никакой документации, кроме того, что она ограничивается одной таблицей. Phpdoc для этого класса (TableGateway) говорит, что массив можно передать, но опять же, я не уверен, что он принимает более одной таблицы.Can 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

Нет, это не так. Объект Table Gateway предназначен для предоставления объекта, который представляет таблицу в базе данных. 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