如何使用 CakePHP 中的元素登录?

How to login with an element in CakePHP?

目前我有一个功能性的登录程序。我的用户转到特定的 login 视图,输入他们的用户名和密码,访问并被重定向到特定的仪表板。

在我的用户控制器中:

public function login() {

    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            return $this->redirect();
        }
        $this->Session->setFlash('Incorrect user or password.');
    }
}

登录视图:

<h1>Access with your username:</h1>
<?php
    echo $this->Form->create('User', array('action' => 'login'));
        echo $this->Form->input('username', array('label' => 'User:'));
        echo $this->Form->input('password', array('label' => 'Password:'));
    echo $this->Form->end('Login');
?>

当我被要求直接在主菜单中添加一些登录字段时,问题就出现了。所以我尝试将它们作为一个元素添加到我的 header 中。没用。

我在 header 中添加的元素:

<div>
    <?php
        echo $this->Form->create('user', array('action' => 'login'));
        echo $this->Form->input('username', array('placeholder' => 'User', 'label' => false));
        echo $this->Form->input('password', array('placeholder' => 'Password', 'label' => false));
        echo $this->Form->submit('Ingresar', array('div' => true));
        echo $this->Form->end();
    ?>
</div>

我输入用户名和密码,然后单击 "login" 按钮。它向我抛出 "Incorrect user or password." 错误消息并将我重定向到 login 操作的视图(无需用户登录)。

在那里,可以成功登录而不会出现进一步的问题,但重点是将操作所需的点击次数减少 1 次。

我错过了什么?我应该怎么办change/add/move?

在您的第二个 html 表单中,模型 User 没有按应有的方式输入

改变

echo $this->Form->create('user', array('action' => 'login'));

echo $this->Form->create('User', array('action' => 'login'));

请注意 u 已从型号名称

更改为 U