要获取新创建的注册 cakePHP 3.x 的标识符,很简单,只要检查实体是否保存好,否则将无法访问该标识符。代码很简单
$this->loadModel('ModelName');
$newEntity = $this->ModelName->newEntity();
因此,在加载模型并声明新记录后,您可以在保存实体之前将值放在实体上。例如,如果它是一个发布请求,你可以这样做:
要按字段处理:
$newEntity->name = $this->request->getData('name');
或(根据 cakePHP 版本,第一个示例来自最近的版本)
$newEntity->name = $this->request->data('name');
否则全局,在这种情况下,表单中字段的名称属性必须与数据库中实体的属性相同。
$newEntity = $this->ModalName->patchEntity($newEntity, $this->request->getData());
一旦实体准备就绪,只有在数据库中注册后,您才能访问其标识符。
获取最后一条记录的ID的解决方案,你必须这样做:
if($this->ModalName->save($newEntity) {
//you can get ID here
$id = $newEntity->id;
}
我希望它会有用。