0
votes

Register.blade.php

 <div class="modal fade" id="adduser" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Create new user</h5>
        <button class="close" type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">×</span>
        </button>
      </div>
<div class="modal-body"><div class="container">
<div class="row">
    <div class="col-md-8 col-md-offset-2">
                <form id="registeruser" class="form-horizontal" method="POST" action="{{ route('register') }}">
                    {{ csrf_field() }}

                    <div class="form-group has-feedback">
                        <label for="name" class="col-md-4 control-label">Name</label>

                        <div class="col-md-6">
                            <input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required autofocus>

                                <span class="glyphicon glyphicon-user form-control-feedback"></span>
                                <span class="text-danger">
                                    <strong id="name-error"></strong>
                                </span>
                        </div>
                    </div>

                    <div class="form-group has-feedback">
                        <label for="email" class="col-md-4 control-label">E-Mail Address</label>

                        <div class="col-md-6">
                            <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required>


                                <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
                                <span class="text-danger">
                                    <strong id="email-error"></strong>
                                </span>
                        </div>
                    </div>

                    <div class="form-group has-feedback">
                        <label for="job_title" class="col-md-4 control-label">job_title</label>

                        <div class="col-md-6">
                            <input id="job_title" type="text" class="form-control" name="job_title" value="{{ old('job_title') }}" required autofocus>

                                <span class="glyphicon glyphicon-job form-control-feedback"></span>
                                <span class="text-danger">
                                    <strong id="job-error"></strong>
                                </span>
                        </div>
                    </div>

                    <div class="form-group has-feedback">
                        <label for="password" class="col-md-4 control-label">Password</label>

                        <div class="col-md-6">
                            <input id="password" type="password" class="form-control" name="password" required>

                           <span class="glyphicon glyphicon-lock form-control-feedback"></span>
                        <span class="text-danger">
                            <strong id="password-error"></strong>
                        </span>
                        </div>
                    </div>

                    <div class="form-group has-feedback">
                        <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>

                        <div class="col-md-6">
                            <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
                        </div>
                        <span class="glyphicon glyphicon-log-in form-control-feedback"></span>
                    </div>

                    <div class="form-group">
                        <div class="col-md-6 col-md-offset-4">
                            <button type="submit" class="btn btn-primary" id="submitForm">
                                Register
                            </button>
                        </div>
                    </div>
                </form>
    </div>
</div>
      <div class="modal-footer">
        <button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
      </div>
    </div>
  </div>
</div>

Bottom of register.blade.php AJAX

    @section('script') <script type="text/javascript">
    $('#registeruser').on('submit', function(e){
        var registerForm = $("#registeruser");
        var formData = registerForm.serialize();

         $.ajaxSetup({
        header:$('meta[name="_token"]').attr('content')
        })
    e.preventDefault(e);
        $.ajax({
            url: $(this).attr('action'),
            type:'POST',
            data:formData,
            dataType: 'json',
            success:function(data) {
                console.log(data);
            },
            error: function(data)
            {

            }
        });
    });
</script>
@endsection 
@endsection

RegisterController

 protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
        'job_title' => 'in:Admin,Staff,Operator',
    ]);

    $data = $request->all();

    if ($validator->passes()) {

        // Store your user in database 

       return response()->json(['responseText' => 'Success!'], 200);

    }

    return Response::json(['errors' => $validator->errors()]);


}

/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return \App\User
 */
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'job_title' => $data['job_title'],
    ]);
}

After I submitted the post request. My form data did not add into the database. And the XMLrequest gave me 200 which is good. Im using a bootstrap modal which popup a window and I wanted to submit from there. Because I am managing the user and only admin allow to add user.

Edited Web.php

Auth::routes();

Route::get('/', function () {
return view('auth.login');
});

Route::middleware(['auth'])->group(function (){

Route::get('/home', 'HomeController@index')->name('home');

Route::get('/register', 'Auth\RegisterController@register');

Route::get('/logout', 'HomeController@doLogout')->name('home');


Route::get('/user', function () {
  return View::make('auth.register');
  });

If i change the form action="{{ url(register) }}" I need the register route. If {{route(register)}} is directly get from the auth.

1
please add web.php code for review - Dhaval Chheda
Which function does route('register') point to? Your validator only validates the data, but does not store it. Your create function creates the user, but does not validate. - aynber
Show your register function as well, please. - aynber
I have listed everything :).. I really dont get it where and why I cant inserted into database my user model fillable which is protected $fillable = [ 'name', 'email', 'password', 'job_title', ]; - aaron theam

1 Answers

0
votes

Try add route register method post

Route::post('/register', 'Auth\RegisterController@register');