2017-08-27 83 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)