0

この質問が以前にも出されたことは知っていますが、インターネットで見つけることができるほぼすべての記事に目を通しましたが、何も問題を解決できませんでした -.-

CakePHP 2.1 アプリで、(ユーザー名ではなく) 電子メールとパスワードを使用してユーザーをログインさせようとしています。また、私が使用しているコントローラーは「ユーザー」ではなく「プロファイル」と呼ばれることを考慮してください。違いはありますか?とにかく、ここに私のコードがあります...

AppController.php

<?php
class AppController extends Controller {
    public $components = array(
        'Session',
        'Auth'=>array(
            'authorize => array('Controller'),
            'Form'=>array(
                'fields' => array('username' => 'email'),
                'userModel' => 'Profile'
            )
        )
    );
}
?>

ProfilesController.php

<?php
class ProfilesController extends AppController {

    function login() {
        if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                $this->Session->setFlash('You have been signed in.', 'flash_success');
                $this->redirect($this->Auth->redirect());
            } else {
                $this->Session->setFlash('Login failed. Your username/password was incorect.');
            }
        }
    }

}
?>

ログイン.ctp

<?php
echo $this->Form->create();
echo $this->Form->input('email');
echo $this->Form->input('password');
echo $this->Form->submit('Sign In');
?>

このログインがまだ機能しない理由について、アイデアや提案はありますか!? 私は困惑しています。

ありがとう!

4

3 に答える 3

2

この関数を書きましたか?

ProfilesController.php

function beforeFilter() {
     $this->Auth->fields = array('username' => 'email', 'password' => 'password');
}
于 2012-12-07T12:54:05.407 に答える
2

私が同様の質問に与えた回答を確認してください

別のテーブルを使用してcakephpにログインできません

これで解決しない場合は戻ってください

于 2012-12-08T07:42:44.487 に答える
1

答えてくれてありがとう!私は自分の問題を解決したばかりですが、実際には非常に簡単な間違いです。

私は実際に使用していました:

'Form' => array(
    'userModel'=>'Profile',
    'fields' => array('username' => 'email')
)

単独で、次のように「authenticate」パラメータ内で使用する代わりに:

'authenticate' => array(
    'Form' => array(
        'userModel'=>'Profile',
        'fields' => array('username' => 'email')
    )
)

助けてくれてありがとう!感謝します。

于 2012-12-08T08:29:16.893 に答える