Klonowanie encji wraz z zależnościami w CakePHP
Pokażę jak klonować encję wraz z zależnościami w CakePHP 3. Najpierw pobież obiekt, który chcesz sklonować wraz z zależnościami.
$article = $this->Articles->get($id, [ 'contain' => [ 'Packages', 'Tags' ] ]);
$newArticleData = $article->toArray();
unset($newArticleData['id']);
unset($newArticleData['created']);
unset($newArticleData['modified']);
foreach ($newArticleData['packages'] as $key => $package) {
	unset($newArticleData['packages'][$key]['id']);
}
foreach ($newArticleData['tags'] as $key => $tag) {
	unset($newArticleData['tags'][$key]['id']);
}
Pozostało już tylko utworzyć nową pustą encję, przekonwertować dane i przekazać je metodzie patchEntity, a na 
koniec zapisać.
$newArticle = $this->Articles->newEmptyEntity();
$newArticle = $this->Articles->patchEntity($newArticle, $newArticleData, [
	'associated' => [
		'Packages',
		'Tags'
	]
]);
if ($this->Articles->save($newArticle)) {
//data saved
}
		
		
		
		
		
		
		
		
	