在 cakephp 3.4 中登录不起作用



我正在制作一个在线测试Web应用程序,这些是控制器

  • 院 系
  • 学生
  • 测试
  • 笔记
  • 问题
  • 答案
  • 测试问题
  • 学生成绩
  • 学生测试

注意:学生和学院都有不同的登录名

我正在尝试登录学院控制器, 我在应用程序控制器中有加载身份验证组件,

当我尝试登录时,它显示错误"用户名或密码不正确">

这是应用程序控制器

$this->loadComponent('Auth', [
'loginAction'=> [
'controller'=>'Faculties',
'action'=> 'login',
],
'authenticate' => [
'Form' => [
'userModel' => 'Faculties',
'fields' => ['username' => 'email', 'password' => 'password'],
]
],
'loginRedirect' => [
'controller' => 'Faculties',
'action' => 'index'
]
]);

这是学院控制器中的登录功能

public function login()
{
if ($this->request->is('post'))
{
debug($this->request->getData());
debug($this->Auth->identify());
$faculty = $this->Auth->identify();
if ($faculty)
{
$this->Auth-setUser($faculty);
return $this->redirect($this->Auth->redirectUrl());
}
$this->Flash->error('Your username or password is incorrect');
}
}

登录视图

<h1>Login</h1>
<?= $this->Form->create() ?>
<?= $this->Form->control('email') ?>
<?= $this->Form->control('password') ?>
<?= $this->Form->submit('Login') ?>
<?= $this->Form->end() ?>

院系架构

CREATE TABLE IF NOT EXISTS `mydb`.`faculties` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '',
`email` VARCHAR(45) NOT NULL COMMENT '',
`password` VARCHAR(45) NOT NULL COMMENT '',
`first_name` VARCHAR(45) NOT NULL COMMENT '',
`last_name` VARCHAR(45) NULL COMMENT '',
`profile_pic` VARBINARY(8000) NULL COMMENT '',
`mobile_no` INT(10) NOT NULL COMMENT '',
`college` VARCHAR(100) NULL COMMENT '',
`department` VARCHAR(100) NULL COMMENT '',
`subjects` TEXT NULL COMMENT '',
`created` DATETIME NULL COMMENT '',
`modified` DATETIME NULL COMMENT '',
PRIMARY KEY (`id`)  COMMENT '')
ENGINE = InnoDB

请帮助代码中的问题

  • 验证每个字段的名称(电子邮件或邮件/密码或密码(
  • 验证您是否在 src/模型/实体/学院中添加了.php"函数_setPassword">
  • 调试$faculty值 也许您的验证有问题(src/Model/Table/FacultyTable.php(

最新更新