我试图通过在名称中添加_copy来应用数据,当然还有一个新的ID,但我不是所有的专家cakePHP,我不知道从哪里开始。这是我的观点:我在控制器中添加了一个带有路径的“复制”按钮
<td>
<?php echo $this->Html->link(
'Dupliquer',
array(
'controller' => 'contracts',
'action' => 'duplicate',
$contract['Contract']['id']
),
array(
'class' => 'btn btn-default btn-sm'
)
); ?>
</td>
我在控制器中调用的函数:
public function duplicate($id = null) {
if (!$id)
{
throw new NotFoundException(__('Identifiant invalide'));
}
$contract = $this->Contract->find('first', [
'conditions' => [
'Contract.id' => $id
]
]);
if (!$this->Contract->HasAny(['Contract.id' => $id])) {
throw new NotFoundException(__('Le contrat n\'a pas pu être trouvé'));
}
$data = [
'name' => $contract['Contract']['name']. '_copy',
];
return $this->redirect('edit');
}
在我的功能中,我检索要复制的信息,我在这里停留在录音的水平。你知道怎么做才能让它干净吗?
谢谢。
更改:
$contract = $this->Contract->findById($id);
至:
$contract = $this->Contract->find()->where(['id' => $id])->first();
然后:
$data = [
'name' => $contract->name. '_copy',
// other fields ...
];
$entity = $this->Contracts->newEntity($data);
$this->Contracts->save($entity);
// ...
// $this->redirect($this->referer());