Es gibt eine andere Möglichkeit FeatureSet zu TableGateway hinzuzufügen.
In module.php können Sie (Tabelle Benutzer zum Beispiel) definieren
'UserTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new UserEntity());
return new TableGateway('user', $dbAdapter, new Feature\SequenceFeature('user','user_id_seq'), $resultSetPrototype);
Aber es ist ein Fehler in SequenceFeature. Alles ist in Ordnung, wenn Sie ein öffentliches Schema verwenden. Wenn Sie ein anderes Schema verwenden müssen, sollten Sie Zend \ Db \ Sql \ TableIdentifier verwenden;
In diesem Fall Modul.php sollte sein:
'UserTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new UserEntity());
return new TableGateway(new TableIdentifier('user','someSchema'), $dbAdapter, new Feature\SequenceFeature(new TableIdentifier('user','someSchema'),'user_id_seq'), $resultSetPrototype);
In diesem Fall wird ein Fehler mit Postgresql Abfrage SELECT NEXTVAL, weil Eigenschaft \ SequenceFeature öffentliches Schema statt in erstem Argumente definiert verwenden Abfrage
SELECT NEXTVAL ('user_id_seq vorzubereiten ')
In diesem Fall sQL-Abfrage
SELECT NEXTVAL sein sollte (' someSchema‘. 'user_id_seq')
Try' $ this-> tableGateway-> getAdap ter() -> lastInsertId(); ' – phpisuber01
Schwerwiegender Fehler: Aufruf zu undefinierter Methode Zend \ Db \ Adapter \ Adapter :: lastInsertId() – Piotr
Hmmm ...' $ this-> lastInsertValue; 'oder' $ this-> tableGateway -> lastInsertValue; 'Nur was ich mir vorstellen kann. – phpisuber01