1

私はcakephp2.1を使用しており、UsersControllerで次のようにログインアクションを使用しました。

public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash('Invalid email or password, try again', 'default/flash_error');
        }
    }
}

また、login.ctpコードは次のとおりです。

<?php echo $this->Form->create('User', array('class' => 'form')); ?>

            <div class="control-group">
                <label class="control-label" for="inputEmail">Email</label>
                <div class="controls">
                    <?php echo $this -> Form -> text('email', array('id' => 'inputEmail', 'placeholder' => 'Email')); ?>
                    <?php echo $this -> Form -> error('email', null, array('wrap' => 'span', 'class' => 'help-block')); ?>
                </div>
            </div>
            <div class="control-group">
                <label class="control-label" for="inputPassword">Password</label>
                <div class="controls">
                    <?php echo $this -> Form -> password('password', array('id' => 'inputPassword', 'placeholder' => 'Password')); ?>
                    <?php echo $this -> Form -> error('password', null, array('wrap' => 'span', 'class' => 'help-block')); ?>
                </div>
            </div>
            <div class="control-group">
                <div class="controls">
                    <label class="checkbox">
                        <input type="checkbox"/>
                        Remember me </label>
                    <?php echo $this->Form->button('Sign in', array('type' => 'submit', 'class' => 'btn')); ?>
                </div>
            </div>
            <?php echo $this->Form->end(); ?>

フォームが電子メールとパスワードで送信されると、ユーザーはログインできないため、「無効な電子メールまたはパスワード、再試行してください」というエラーが表示されます。$ this-> request->data['User']を$this->Auth-> login()メソッドに渡し、$ this-> Session-> read(Auth.User.id)をデバッグしています。それは私にnullを与えます。これに対する解決策を教えてください。

4

1 に答える 1

1

メソッドに渡し$this->request->dataてみることができます。$this->Auth->login()これを行うのに最適な方法ではありません(この投稿を参照してください:CakePHPAuthコンポーネント$this-> Auth-> login();を使用しているときにログインしません)が、私にとっては機能します。デバッグしました$this->Auth->login()か?

于 2012-11-02T20:09:54.827 に答える