Laravel How Auth ::尝试了解Table

Jun*_*ooq 5 php mysql laravel laravel-4

我的数据库1中有两个表:项目3:用户并尝试登录用户并且它正常工作,但我的问题是我没有提到它将从哪个表中获取数据,但它是从自动需要的表格?它是Laravel的特征还是我做错了什么?或者我不明白为什么会这样?

形成

{{ Form::open(array('class'=> 'forming')) }}

    {{ Form::text('username',null,array( 'placeholder' => 'Username' ,'class' => 'insi')); }}<br>
    {{ Form::password('password',array('placeholder'=>'Password', 'class'=>'paswor')); }}<br>
    {{ Form::submit('SignIn!',array('class'=> 'but-n')); }}

{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)

和AuthController

class AuthController extends Controller{

        public function getLogin(){
            return View::make('login');
        }

        public function postLogin(){
            $rules = array('username'=> 'required', 'password'=>'required');

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

            if($validator->fails()){
                return Redirect::route('login')
                    ->withErrors($validator);
            }

            $auth = Auth::attempt(array(
                'username' => Input::get('username'),
                'password' => Input::get('password')
                ), false);
            if(!$auth){

                return Redirect::route('login')
                    ->withErrors(array(
                        'Invalid'
                        ));
            }

            return Redirect::route('home');

        }
}
Run Code Online (Sandbox Code Playgroud)

Ant*_*iro 9

Auth使用您的模型file app/config/auth.php:

如果您使用Eloquent驱动程序进行身份验证:

/*
|--------------------------------------------------------------------------
| Authentication Model
|--------------------------------------------------------------------------
|
| When using the "Eloquent" authentication driver, we need to know which
| Eloquent model should be used to retrieve your users. Of course, it
| is often just the "User" model but you may use whatever you like.
|
*/

'model' => 'User',
Run Code Online (Sandbox Code Playgroud)

如果您使用的是数据库驱动程序:

/*
|--------------------------------------------------------------------------
| Authentication Table
|--------------------------------------------------------------------------
|
| When using the "Database" authentication driver, we need to know which
| table should be used to retrieve your users. We have chosen a basic
| default value but you may easily change it to any table you like.
|
*/

'table' => 'users',
Run Code Online (Sandbox Code Playgroud)

如果您需要使用多个表进行身份验证,那么您有一些选项,其中一个是使用类似这样的结构来继续登录:

class Logon {

    public function loginViaEmail($email, $password)
    {
        if ($emailModel = Email::where('email', $email)->first())
        {
            return $this->login($emailModel->user_id, $password);
        }

        return false;
    }

    public function loginViaName($name, $password)
    {
        if ($memberModel = Member::where('name', $name)->first())
        {
            return $this->login($memberModel->user_id, $password);
        }

        return false;
    }

    public function loginViaId($id, $password)
    {
        if ($beingModel = Being::where('id', $id)->first())
        {
            return $this->login($beingModel->user_id, $password);
        }

        return false;
    }

    public function login($id, $password)
    {
        $user = Member::find($id);

        if(Hash::check($password, $user->password))
        {
            Auth::loginUsingId($id);

            return true;
        }

        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以在控制器中执行此操作:

$logon = new Logon;

if ( ! $logon->loginViaEmail(Input::get('email'), Input::get('password')))
{
    return "username or password invalid";
}

return "logged in successfully";
Run Code Online (Sandbox Code Playgroud)

要么

...

if ( ! $logon->loginViaName(Input::get('name'), Input::get('password')))

...
Run Code Online (Sandbox Code Playgroud)