2015-07-12 145 views
0

在cakephp 2中,在更新循環中的表時,要重置表ID和數據,我使用了create,然後進行了保存。 http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-create-array-data-arrayCakephp 3模型創建

$data = array('username' => usernameArray[$i], 'age' => $ageArray[$i]); 
$this->Mytable->create(); 
$this->Mytable->save($data); 

是否有在CakePHP 3的新ORM同等功能,還是新的數據庫系統自動處理這個?

要使用剩餘的代碼,我將在循環中使用此代碼。我需要創建功能嗎?

$data = array('username' => usernameArray[$i], 'age' => $ageArray[$i]); 
$tableInstance = TableRegistry::get('Mytable'); 
$entity = $tableInstance->newEntity($data); 
$tableInstance->save($entity); 

回答

3

您可以使用newEntities()方法根據請求數據創建實體列表。然後您可以使用循環來保存實體。

$this->loadModel('Users'); 
$users = $this->Users->newEntities($this->request->data()); 
foreach ($users as $user) { 
    $this->Users->save($user); 
} 

docs顯示newEntities()預期的輸入格式。

+0

如果我沒有數據,我想創建空記錄怎麼辦? –

+0

用空數組調用newEntity()。 –