无法在laravel中验证用户

时间:2014-03-31 11:30:14

标签: php laravel

我是laravel的新手,所以我开始创建一个消息传递应用程序。用户应该能够相互发送消息。所以我创建了迁移,种子,模型以及模型中定义的关系。一切都很好。我能够完美地播种。

所以我创建了一个登录页面,应用了验证。但现在我无法登录。

这是路线:

Route::group(array('prefix'=>'social'), function(){

    Route::get('/', array('as' => 'loginformshow', 'uses' => 'LoginformController@showLogin'));

    Route::post('loginform', array('as'=>'loginformdo', 'uses'=>'LoginformController@doLogin'));



    Route::get('loggedin', array('as'=>'loggedin', 'uses'=>'LoginformController@loggedin'));

});

这是控制器中的相应方法

public function doLogin(){


        $rules = array('email'=> 'required|email', 'password'=>'required');

        $validator = Validator::make(Input::all(), $rules);

         if($validator->fails()){
            return Redirect::to('social')->withErrors($validator)->withInput(Input::except('password'));
         }else {
            $userdata = array('email' => Input::get('email'), 'password' => Input::get('password'));

            if(Auth::attempt($userdata)) {                  
                return Redirect::route('loggedin');
            }else echo "Invalid User";          
        }
    }

Auth::attempt每次都返回false,因此输出为Invalid User。 我使用print_r检查$userdata中收到的数据,并显示正确的凭据。

以下是用户模型:

<?php

use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends Eloquent implements UserInterface, RemindableInterface {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'users';

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = array('password');

    /**
     * Get the unique identifier for the user.
     *
     * @return mixed
     */
    public function getAuthIdentifier()
    {
        return $this->getKey();
    }

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->password;
    }

    /**
     * Get the e-mail address where password reminders are sent.
     *
     * @return string
     */
    public function getReminderEmail()
    {
        return $this->email;
    }

    public function conversationsReply(){
        return $this->hasMany('ConversationReply', 'user_id', 'id');
    }

}

0 个答案:

没有答案