C'è un'altra possibilità di aggiungere featureset a TableGateway.
In Module.php si può definire (tabella utente per esempio)
'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);
ma c'è un bug in SequenceFeature. Tutto è ok, quando usi lo schema pubblico. Quando devi usare altri schemi dovresti usare Zend \ Db \ Sql \ TableIdentifier;
In questo caso Modulo.php dovrebbe essere:
'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 questo caso sarà un errore con PostgreSQL query SELECT NEXTVAL, perché Caratteristica \ SequenceFeature utilizzerà schema pubblico, invece di definito nel primo argomento per la preparazione di query
SELEZIONA NEXTVAL ('user_id_seq ')
In questa query SQL caso dovrebbe essere
SELEZIONA nEXTVAL (' someSchema'. 'user_id_seq')
fonte
2016-12-14 14:06:01
Prova '$ this-> tableGateway-> getAdap ter() -> lastInsertId(); ' – phpisuber01
Errore irreversibile: chiamata al metodo non definito Zend \ Db \ Adapter \ Adapter :: lastInsertId() – Piotr
Hmmm ...' $ this-> lastInsertValue; 'or' $ this-> tableGateway -> lastInsertValue; "L'unica cosa a cui riesco a pensare. – phpisuber01