2017-08-27 50 views
0

我正在做一个在线测试Web应用程序,这些都是控制器登录CakePHP中3.4不工作

  • 院系
  • 学生
  • 测试
  • 问题
  • 答案
  • 测试问题
  • 个StudentResults
  • StudentsTests

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

我想在院系控制器登录, 在应用程序控制器我有负载验证组件,

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

这是应用控制器

$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 

请帮助什么是错的代码

+0

什么是你'faculties'数据库架构? – tarikul05

+0

我已经添加了模式,请帮忙 –

+0

你加密你的密码吗?如果你加密它然后'密码VARCHAR(45)'长度'45'是不够的增加它,并再次尝试注册 – tarikul05

回答

0
  • 验证每个字段的名称(电子邮件或邮寄/密码或passwd文件)
  • 确认您的src /型号/实体/ Faculty.php内添加“function _setPassword
  • 调试$教师价值也许你有一个问题,您的验证(SRC /型号/表/ FacultyTable.php)