使用cakePhp重复输入

问题描述 投票:0回答:1

我试图通过在名称中添加_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');
    }

在我的功能中,我检索要复制的信息,我在这里停留在录音的水平。你知道怎么做才能让它干净吗?

谢谢。

cakephp orm duplicates cakephp-3.x
1个回答
0
投票

更改:

$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());
© www.soinside.com 2019 - 2024. All rights reserved.