插入关联表后获取最后插入的ID

时间:2015-06-08 14:21:27

标签: cakephp cakephp-3.0

Employees表有一个名为current_address_id的字段。我正在向Addresses添加新地址,例如:

$updatedEntity = $this->patchEntity($employee, [
    //some other fields 
    'user'                => $userData,
    'employees_phones'    => $phonesData,
    'employees_addresses' => $addressesData,
], [
    'associated' => ['Users', 'EmployeesPhones', 'EmployeesAddresses']
]);
$this->save($updatedEntity);

我已成功插入新地址,但现在我需要使用新地址ID更新Employees.current_address_id。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

Table::save()返回具有更新ID的实体。因此,将返回值存储在变量中,并使用实体的适当属性。

答案 1 :(得分:0)

试试这个。它对我有用。

$this->ModelName->save($updatedEntity);
$lastInsertedId = $updatedEntity->id; 

只要尚未设置实体ID,save方法将使用最后一个插入ID更新实体。