Zend Framework: как получить идентификатор последней вставленной строки?

Я вставляю новую строку в свою базу данных с помощью этого кода:

$data = array( 'key' => 'value' ); $this->getDbTable()->insert($data); 

Как я могу получить идентификатор строки этой строки, которую я только что создал?

Вы попробовали это? Это также отлично работает.

 //just after you call your insert($data) function .. use this $lastInsertId = $this->getAdapter()->lastInsertId(); 

Один получил. При вызове $this->getDbTable()->insert($data); вы должны убедиться, что $ data включает «первичный ключ» вашей таблицы. Например, id=null если он автоматически увеличивается. В противном случае insert() не вернет последний вставленный идентификатор.

Попробуйте под кодом:

Вставить данные:

 $this->tableGateway->insert($data); 

Получить последнее введенное значение:

 $this->tableGateway->lastInsertValue; 

Существует также функция newId , ведьма возвращает следующий новый идентификатор, поэтому вы можете использовать его для вставки новой строки.

 $id = $this->getDbTable->newId('table_name', 'id'); $data = array( 'id' => $id, 'data' => $data ); $this->getDbTable->insertRow('table_name', $data); 

Теперь вы можете делать все, что хотите, с помощью $id .