ZF ID последней вставки возвращает мне «0» - PullRequest
2 голосов
/ 18 сентября 2011

Когда я пытаюсь использовать функцию '-> lastInsertId ()', чтобы получить идентификатор lat таблицы, я возвращаю '0'. Я не могу найти решение. Мой стол - автоинкремент

Я пытаюсь получить его в контроллере с этим кодом.

$reviews = new Application_Model_DbTable_Reviews();
$lastId  = $reviews->getAdapter()->lastInsertId();
echo $lastId;

Я надеюсь, что кто-то может мне помочь.

С уважением,

Ник

1 Ответ

1 голос
/ 19 сентября 2011

Хорошо, этот материал не упоминается в документации, но он работает, например, если у вас есть имя таблицы 'Book' с PK book_id, FK user_id и таблица 'User' с PK user_id

<<Book>>
*book_id
title
user_id

<<User>>
*user_id
name
age

затем

$userTb = new Model_DbTable_User();
$user = $userTb->createRow();
$user->name = "jason";
$user->age = 25;
$user->save();

// через некоторое время после сохранения записи ZF заполняет PK для вас, так что теперь у вас есть доступ только для чтения к автоматически увеличенному PK просто через $ userTb-> user_id;

так

$bookTb = new Model_DbTable_Book();
$book = $bookTb->createRow();
$book->title = 'php';
$book->user_id = $user->user_id;
$bookId = $book->save(); // this is another way of accessing auto generated PK at insert tim .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...