2017-04-13 51 views
2

我想獲得最後插入的ID在蛋糕PHP 3Hw我可以在cakephp 3.x中獲得最後插入的ID嗎?

如果($這個 - >請求 - >是( '後')){

 $this->loadModel('MyPlaylists'); 

        $playlistData = []; 
        $playlistData["user_id"] = $_POST['user_id']; 
        $playlistData["play_list_name"] = $_POST['play_list_name']; 
        $playlistData["section"] = $_POST['section']; 
        $playlistData["created"] = date('Y-m-d H:i:s', strtotime('now')); 
        $playlistData["status"] = 'active'; 
        $playlist_en = $this->MyPlaylists->newEntity(); 
        $this->MyPlaylists->patchEntity($playlist_en, $playlistData); 
        $this->MyPlaylists->save($playlist_en); 
        $id=$this->MyPlaylists->id; 
       } 

我也曾嘗試:

$id=$this->MyPlaylists->lastInsertedId; 

但它給錯誤如下截圖: enter image description here

+0

是的,這是不是由於自動錶 – Gagzzz

+0

Offtopic:從不直接在CakePHP的超全局不甘示弱,改用abstratcted包裝通過請求訪問數據,在這種情況下,對象'數據()'或'getData()'方法:https://book.cakephp.org/3.0/en/controllers/request-response.html#request-body-data – ndm

+0

你能舉個例子嗎? – Gagzzz

回答

2

你的代碼需要一些微調。

$playlist_en = $this->MyPlaylists->newEntity(); 
$playlist_en = $this->MyPlaylists->patchEntity($playlist_en, $playlistData); 
$isValid  = $this->MyPlaylists->save($playlist_en); 
if ($isValid) { 
    $id = $playlist_en->id; 
    debug($id); // Check your last insert id 
} else { 
    pr($playlist_en->errors()); // Check errors 
} 
+0

真棒!謝謝它適合我! – Gagzzz

0

進行查詢,選擇在DESC中排序的查詢的第一個元素。方式

$newPlaylist = $this->Playlists->find('all',['order' => ['Playlists.id' => 'DESC']])->select(['id']);