我正在使用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;
}
答案 0 :(得分:0)
使用以下
if(empty($this->data) )
{
if (!$this->request->data) {
$this->request->data = $user;
}
}
而不是你的
if (!$this->request->data) {
$this->request->data = $user;
}