0

これは私の AppController.php です

class AppController extends Controller {
    public $components = array(
        'Session',
        'Auth' => array(
            'loginAction' => array(
                'controller' => 'students',
                'action' => 'login'
            ),
            'loginRedirect' => array('controller' => 'students', 'action' => 'index'),
            'logoutRedirect' => array('controller' => 'students', 'action' => 'login'),
            'authError' => "You can't acces that page",
            'authorize' => array('controller')
        )
    );

    public function isAuthorized($student){
        return TRUE;
    }
}

これは私のStudentsController.phpです

class StudentsController extends AppController{


        public function login(){
            if($this->request->is('post')){
                if($this->Auth->login()){
                    $this->redirect($this->Auth->redirect());
                }else{
                    $this->Session->setFlash('Your username or password is incorrect');
                }
            }
        }

        public function logout(){
            $this->redirect($this->Auth->logout());
        }
}

これは私の login.ctp です

<h2>Login</h2>
<?php
    echo $this->Form->create();
    echo $this->Form->input('username');
    echo $this->Form->input('password');
    echo $this->Form->end('Login');
?>

私のデータベースでは、テーブル名はstudentsで、そのフィールドはus​​ernamepassword です

しかし、でログインしようとするたびに$this->Auth->login()falseが返され、パスワードが間違っているというフラッシュメッセージが表示され、ログインできません。

4

1 に答える 1

3

Users認証以外のモデルを使用しているため、そのモデル名をAuthComponent.

$this->Auth->authenticate = array(
    AuthComponent::ALL => array('userModel' => 'Student'),
    'Form',
    'Basic'
);

ドキュメントを読む必要があります

于 2013-03-08T11:00:12.800 に答える