Как получить последнюю вставку UUID из Zend Framework? - PullRequest
1 голос
/ 07 декабря 2011

Как получить UUID последней вставки в Zend Framework?

1 Ответ

1 голос
/ 07 декабря 2011

Если вы используете «таблицу» (это означает, что ваш класс расширяет Zend_Db_Table_Abstract), то последний вставленный первичный ключ с сгенерированным ключом автоматически возвращается при вызове Zend_Db_Table_Abstract::insert -метода:

$personTable = new My_Model_DbTable_Person()
$addressTable = new My_Model_DbTable_Address()

$personId = $personTable->insert(array(
    "name" => "John",
    "familyname" => "Doe",
));

$addressTable->insert(array(
    "person_id" => $personId,
    "street" => "Some Street",
    "city" => "Gotham City",
));

Более подробная информация об этом методе приведена в справочнике Zend Zend_Db_Table

Если вы используете адаптер базы данных напрямую (класс extends Zend_Db_Adapter_Abstract, экземпляр созданиспользование Zend_DB::factory или создание базы данных с использованием ресурсов приложения), то есть метод Zend_Db_Adapter_Abstract::lastInsertId, который является немного более гибким.Для получения дополнительной информации см. Ссылку Zend Zend_Db_Adapter.

$db = Zend_Db::factory(...);

$db->insert("person", array(
    "name" => "John",
    "familyname" => "Doe",    
));

$personId = $db->lastInsertId();

$db->insert("address", array(
    "person_id" => $personId,
    "street" => "Some Street",
    "city" => "Gotham City",  
));   
...