你如何获得CakePHP 3.0中的最后一个插入ID?

ben*_*921 19 cakephp cakephp-3.0

使用CakePHP 3.0测试版似乎是一个简单的问题,但我搜索了文档并找不到任何东西.使用$ this-> Model-> save()插入新记录后,我想获取新创建记录的auto_increment主键ID.

使用Cake 2.x,我可以做到:

$record_id=$this->ModelName->id;
Run Code Online (Sandbox Code Playgroud)

要么

$record_id=$this->ModelName->getLastInsertID();
Run Code Online (Sandbox Code Playgroud)

然而,这些似乎都不适用于CakePHP 3.0.

谢谢

ben*_*921 30

终于找到了答案,如果有人碰到这个:

$result=$this->ModelName->save($whatever);
$record_id=$result->id;
Run Code Online (Sandbox Code Playgroud)

  • 这是这里的书:http://book.cakephp.org/3.0/en/orm/saving-data.html#inserting-data (2认同)

小智 14

到cakephp3.XI发现了这个:

if ($articlesTable->save($article)) {
    // The $article entity contains the id now
    $id = $article->id;
}
Run Code Online (Sandbox Code Playgroud)

http://book.cakephp.org/3.0/en/orm/saving-data.html#inserting-data


Fai*_*sal 7

您可以通过以下方式解决此问题。

对于 CakePHP 3.x

$result = $this->ModelName->save($this->request->data);
$insertedId = $result->id;
Run Code Online (Sandbox Code Playgroud)

对于 CakePHP 2.x

$this->ModelName->save($this->request->data);
$insertedId = $this->ModelName->getLastInsertId();
Run Code Online (Sandbox Code Playgroud)