-
-
Notifications
You must be signed in to change notification settings - Fork 175
Laravel Auth Controller
Marcif edited this page May 5, 2016
·
6 revisions
To use JsValidation with Laravel 5's default Auth Controller override getLogin and getRegister methods
In Laravel 5.2 you need to change the name of the function getLogin on showLoginForm
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use JsValidator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
{
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'getLogout']);
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
/*
|--------------------------------------------------------------------------
| JsValidation integration
|--------------------------------------------------------------------------
|
| To integrate JsValidation package with default Auth Controller
| override getLogin and getRegister methods implemented in
| AuthenticatesAndRegistersUsers trait to pass JsValidator instance to the view
|
*/
/**
* Show the application login form.
*
* @return \Illuminate\Http\Response
*/
public function getLogin()
{
$rules = array(
'email' => 'required|email',
'password' => 'required',
);
$validator = JsValidator::make($rules);
return view('auth.login', ['validator'=>$validator]);
}
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function getRegister()
{
$validator = JsValidator::validator(
$this->validator([])
);
return view('auth.register', ['validator'=>$validator]);
}
}