Often asked me about creating a modal form with Bootstrap and also its interaction with Laravel. So I'm in this article elaborate on this by starting a completely fresh install of Laravel and editing it slightly to allow user registration from a modal form.
So first install a brand new 5.2 Laravel by your preferred method (the installer, compose ...). also create a database for this to work.connect with database
You should end up with the controller for authentication
As Laravel 5.2 does not include the views, routes and other for authentication must generate with the command:
php artisan make:auth
the controller
Here is the code of the controller AuthController changed:
<?phpnamespace App\Http\Controllers\Auth;use App\User;use Validator;use App\Http\Controllers\Controller;use Illuminate\Foundation\Auth\ThrottlesLogins;use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;use Illuminate\Http\Request;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; /** * Where to redirect users after login / registration. * * @var string */ protected $redirectTo = '/'; /** * Create a new authentication controller instance. * * @return void */ public function __construct() { $this->middleware($this->guestMiddleware(), ['except' => 'logout']); } /** * 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|min:6|confirmed', ]); } /** * 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']), ]); } /** * Handle a registration request for the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function register(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()) { $this->throwValidationException( $request, $validator ); } $this->create($request->all()); return response()->json(); }}
I overloaded the method postRegister the line to change the code by removing the automatic connection and returns a JSON response. Validation recognizes that the request may be in Ajax, so in case of input error is automatically have a correct return. Hopefully we create the user and returns a JSON response blank.
