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 reviewDhaval 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');