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

Get last inserted ID after inserting to associated table

Employees table 有一个名为 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。我怎样才能做到这一点?

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

试试这个。对我有用。

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

只要尚未设置实体 ID,保存方法就会使用最后插入的 ID 更新实体。