我的标头中有一个与我的users_controller对话的登录表单,但表单本身不在用户控制器生成的视图中,所以我遇到了两个问题
1.)密码字段不像密码字段那样被视为普通文本字段
2.)提交表单时,它只是重定向到登录操作
这是代码,它在登录视图和我的标头中使用(所以我知道它有效):
<?php echo $this->Form->create(null, array('id' => 'loginform', 'type' => 'post',
'url' => array('controller' => 'users', 'action' => 'login'))); ?>
<fieldset id="login">
<ul class="clearfix">
<li id="li-username">
<?php echo $this->Form->input('username', array('label'=>false,'placeholder'=>'Username or email address')); ?>
</li>
<li id="li-password">
<?php echo $this->Form->input('password', array('label'=>false,'placeholder'=>'Password')); ?>
<span id="iforgot"><?php echo $this->Html->link('?',
array('controller' => 'users', 'action' => 'forgotpassword'), array('title' => 'Forgot your password?')); ?></span>
</li>
<li id="li-submit">
<button type="submit" title="Log in">Log in ►</button>
</li>
</ul>
</fieldset>
<?php echo $this->Form->end(); ?>
为什么不改变
表单>创建(空,...
自
Form->create('User',...
否则更改
表单>输入("用户名",...
自
Form->input('User.username',...
- 您可以使用类型 = "密码"
echo $this->Form->input('password', array('label'=>false, 'type' => 'password', 'placeholder'=>'Password'));
- 您已在 $this->Form->create() 语句中指定了 array('controller' => 'users', 'action' => 'login')。所以表单被提交到"/用户/登录"
如果您不想将表单提交到"/users/login",则可以使用 AJAX 执行登录。
希望这些能回答您的疑问。