cakephp表单行动链接

时间:2014-10-15 05:21:18

标签: php cakephp

我正在使用cakephp(2.4.7)进行开发,我遇到了表单操作链接的问题。

我正在使用带有编辑操作的usersController。

public function edit($id = null, $slug = null) {
    if (!$id) {
       throw new NotFoundException(__('Invalid User'));
    }
    $user = $this->User->findById($id);
    if (!$user) {
       throw new NotFoundException(__('Invalid User'));
    }
    if ($this->request->is(array('post', 'put'))) {
       // Do stuff here
    }
    // Fill the form
    if (!$this->request->data) {
       $this->request->data = $user;
    }
}

使用此代码表格($ this-> create->(' User'));在编辑视图中正确填充。但我在编辑视图中有另一种形式。

像:

echo $this->Form->create(null, array(
     'url' => array('controller' => 'useraddresses', 'action' => 'add')
));
echo $this->Form->input('searchvalue');
echo $this->Form->hidden('country');
echo $this->Form->hidden('city');
echo $this->Form->end('save');

当我点击此表单中的发送按钮时,页面链接到/ useraddresses / add / 2(2是用户的id) 我用firebug对表单进行了调试,在action参数中也是/ useraddresses / add / 2.

我怎么能得到这个?我将把表单发送到/ useraddresses / add而不带任何参数。

如果我在编辑操作中删除了这段代码,则操作链接正确但我的第一个表单没有填写。

// Fill the form
if (!$this->request->data) {
     $this->request->data = $user;
}

1 个答案:

答案 0 :(得分:0)

使用以下

if(empty($this->data) )
{
if (!$this->request->data) {
   $this->request->data = $user;
}
}

而不是你的

if (!$this->request->data) {
   $this->request->data = $user;
}