我有一个表单来添加新用户。只有登录的管理员才能访问此表单。不幸的是,管理员的用户名和密码被填写到表格字段中,这些字段应该是完全清楚的。一个非常奇怪的事情是:用户名被打印到生日区域!
我真的无法解释自己是如何运作的。而且我无法在WWW中找到一个有同样问题的人的帖子 - 我只找到了有关预先填写的表格数据的问题和答案。
这是View /Users/add.ctp
<h1>Add a new Member</h1>
<?php echo $this->Form->create('User', array('url' => BASE_URL.'/users/add', 'action'=>'post')); ?>
<table class="form">
<tr><td>Username:</td><td><?php echo $this->Form->input('User.username', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
<tr><td>Name:</td><td><?php echo $this->Form->input('User.name', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
<tr><td>Lastname:</td><td><?php echo $this->Form->input('User.lastname', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
<tr><td>E-Mail:</td><td><?php echo $this->Form->input('User.email', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
<tr><td>Birthday:</td><td><?php echo $this->Form->input('User.birth', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
<tr><td>Password:</td><td><?php echo $this->Form->input('User.password', array('label' => false, 'div' => false, 'value' => ''));?></td></tr>
</table>
<?php
echo $this->Form->submit('Submit', array('formnovalidate' => true));
echo $this->Form->end();
?>
这是Controller /UsersController.php
public function add() {
$this->layout = 'admin';
if ($this->request->is('post')) {
// Saving the data
$this->User->create();
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('Data saved.'));
return $this->redirect(array('action' => 'view'));
}
$this->Session->setFlash(__('Data could not be saved.'));
}
}
顺便说一下:保存工作正常。 当然,admin是Object User,也是要添加的新成员。我想,这就是问题所在,但我真的不知道......我整天都在想这个问题:(有人知道该怎么办吗?
提前致谢。
答案 0 :(得分:0)
检查$this->data
。
CakePHP使用在那里找到的数据自动填充表单,因为它猜测这是用户已经提交的数据。
在您的示例中,如果您在$this->data['User']['birth']
中有一些值,则应在生日输入中显示该值。
答案 1 :(得分:0)
不是您的浏览器? (第一次输入时保存的用户名/密码)
因此,您可以关闭自动完成功能。
<?php echo $this->Form->create('User', array('url' => BASE_URL.'/users/add', 'action'=>'post', 'autocomplete' => 'off')); ?>
此选项=&gt; 'autocomplete'=&gt; '关断'强>