我在常规id
结构中遇到http://localhost/bekzcart/admin/users/edit/6
字段的问题。
我有6个用户字段,所有字段都通过模型验证为“非空”。编辑一个用户时我放了一个隐藏的字段。
在提交表单时,它自然会给我错误(来自模型)说“非空”。没有在该领域输入任何内容,我再次点击提交,现在我面临问题。
这次发生的事情是,网址中的'id'字段现已消失,http://localhost/bekzcart/admin/users/edit)并且数据库中有一个新条目(理想情况下它应该更新)。
可能是什么错误?
我的用户控制器:
class UsersController extends AppController {
var $name = 'Users';
function admin_edit($id) {
$this->User->id = $id;
$userLevels = $this->User->Level->find('list', array('fields' => array('LEVEL_ID', 'lEVEL_NAME')));
$this->set('levels', $userLevels);
if (empty($this->data)) {
$this->data = $this->User->read();
} else {
$this->User->set($this->data);
if ($this->User->validates(array('fieldList' => array('USER_LOGIN', 'USER_NAME', 'USER_EMAIL', 'USER_ADDRESS', 'USER_PHONE')))) {
$this->data['User']['USER_MODIFIED'] = DboSource::expression('NOW()');
if ($this->User->save($this->data)) {
$this->Session->setFlash(__('Edit User Success.', true));
} else {
$this->Session->setFlash(__('Something wrong with the query', true));
}
}
}
}
}
用户模型:
class User extends AppModel {
var $name = 'User';
var $primaryKey = 'USER_ID';
// Validation in here
// Association in here
}
我的相关观点:admin_edit.ctp
$this->Form->input('id', array('type' => 'hidden')) // The Hidden Id Not Work
非常感谢提前,
regrad
布莱恩......
答案 0 :(得分:0)
echo $this->Form->input('id');
将自动隐藏。
并发布生成表单的完整代码,输出表单应该是这样的:
<form id="AdminUserEditForm" accept-charset="utf-8" action="/admin/users/edit/1" method="post">
还有一个建议:将“已创建”和“已修改”字段添加到您的用户表(键入日期时间)。 Cake将为您跟踪这些字段。
答案 1 :(得分:0)
字段id
必须替换为相关表使用的主键,在本例中为USER_ID
$this->Form->input('USER_ID', array('type' => 'hidden'))