PHP code example of riesenia / cakephp-duplicatable
1. Go to this page and download the library: Download riesenia/cakephp-duplicatable library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
riesenia / cakephp-duplicatable example snippets
class InvoicesTable extends Table
{
public function initialize(array $config): void
{
parent::initialize($config);
// add Duplicatable behavior
$this->addBehavior('Duplicatable.Duplicatable', [
// table finder
'finder' => 'all',
// duplicate also items and their properties
'contain' => ['InvoiceItems.InvoiceItemProperties'],
// remove created field from both invoice and items
'remove' => ['created', 'invoice_items.created'],
// mark invoice as copied
'set' => [
'name' => function($entity) {
return md5($entity->name) . ' ' . $entity->name;
},
'copied' => true
],
// prepend properties name
'prepend' => ['invoice_items.invoice_items_properties.name' => 'NEW '],
// append copy to the name
'append' => ['name' => ' - copy']
]);
// associations (InvoiceItems table hasMany InvoiceItemProperties)
$this->hasMany('InvoiceItems', [
'foreignKey' => 'invoice_id',
'className' => 'InvoiceItems'
]);
}
}
// ... somewhere in the controller
$this->Invoices->duplicate(4);