更新表格Cakephp 3

时间:2015-04-10 08:45:57

标签: php forms cakephp cakephp-3.0

我目前正在使用cakephp 3进行项目。

我有一个表单来添加在我的控制器中使用它的客户端:

    public function add(){

        $clients = $this->Clients->newEntity();
        if($this->request->is('post')){
            $clients = $this->Clients->patchEntity($clients, $this->request->data);
            if($this->Clients->save($clients)){
                $this->Flash->success(__('Client has been created.'));
                return $this->redirect(['controller'=>'Clients','action'=>'index']);
            }
            $this->Flash->error(__('Client hasnt been created.'));
        }
        $this->set('clients',$clients);

    }

然后我希望有可能修改我的一个客户端。 我有一个客户表,当我点击它们时,我有一个修改按钮(jQuery)。 然后我就在我的修改页面上。我用蛋糕上的文档进行了一些测试,但似乎我不明白它是如何工作的以及我应该使用什么工具。

目前,我的控制器上有这个:

public function modify($id = null){
            if(empty($id)){
                throw new NotFoundException;
            }
            $clients = $this->Clients->get($id);
            /* there should be the modify code */
            $this->set('clients', $clients);

        }

我不知道该怎么用,就像我说的那样......有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

编辑记录的代码非常简单:

public function modify($id = null){
        if(empty($id)){
            throw new NotFoundException;
        }
        $client = $this->Clients->get($id);
        if ($this->request->is(['post', 'put']) {
            $client = $this->Clients->patchEntity($client, $this->request->data);
            if ($this->Clients->save($client)) {
                return $this->redirect($someURL);
            }
        }
        $this->set('client', $client);

}