vendredi 17 juin 2016

Laravel 5.2: Error while selecting an option in select box

I'm currently using Laravel to develop a project and right now I'm currently having errors with it.

I'm currently developing a registration page using Laravel's Authentication service and modified it according to what I want to achieve. Right now, I have a form that has two (2) select boxes which are for Province and Cities. What they do is that the list of cities will be loaded into City Select Box depending on what the user will select in the Province Select Box. And that is where the error shows. I'm also using jQuery AJAX to achieve it. The Province select box always returns a 2-letter code which represents the province selected and every time I select a province, I always encounter a `500: Internal Server Error.' By investigating a bit deeper using Chrome's Inspect feature, I always see an error that says:

ErrorException in helpers.php line 747:
preg_replace(): Parameter mismatch, pattern is a string while replacement is an array

register.blade.php

<div class="form-group form-group-sm ">

                        

                        <div class="col-md-6">

                            
                            @if ($errors->has('province'))
                                <span class="help-block">
                                    <strong></strong>
                                </span>
                            @endif
                        </div>
                    </div>

                    <div class="form-group form-group-sm ">

                        
                        <div class="col-md-6">

                            

                            @if ($errors->has('city'))
                                <span class="help-block">
                                    <strong></strong>
                                </span>
                            @endif
                        </div>
                    </div>

JavaScript Code

<script type="text/javascript">
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    });

    $('#province').on('change', function() {
    var optionSelected = $(this).find("option:selected");
    var province_code = optionSelected.val();
    alert(province_code);

    $.ajax({
        type: "post",
        url: "register",
        data: {
          province_code: province_code
        }

      })
      .done(function() {
        alert('im here');
      });
    });
</script>

routes.php

Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
    return view('welcome');
});

// Route::auth();
Route::get('register', 'Auth\AuthController@showRegistrationForm');
Route::post('register', 'Auth\AuthController@register');
Route::post('register', ['before' => 'csrf', 'uses' => 'Auth\AuthController@getCities']);

Route::get('/home', 'HomeController@index');});

AuthController.php

public function getCities(){

    if(Request::ajax()){
        Log::info(Input::all());

        $province_code = Input::get('province_code');

        $province_id = DB::select('select province_id from provinces where province_code = :code', ['code' => $province_code]);
        $cities = DB::select('select city_name from cities where province_id = :id', ['id' => $province_id]);

        return view('auth.register')->with('cities', $cities);
    }
}

Error from Google Chrome's Inspect Feature

ErrorException in helpers.php line 747:
preg_replace(): Parameter mismatch, pattern is a string while replacement is an array
in helpers.php line 747
at HandleExceptions->handleError('2', 'preg_replace(): Parameter mismatch,    pattern is a string while replacement is an array',        'C:\xampp\htdocs\shipandswitch\vendor\laravel\framework\src\Illuminate\Support\helpers.php', '747', array('search' => '\?', 'replace' => array('id' =>   array(object(stdClass))), 'subject' => 'select city_name from cities where   province_id = :id', 'value' => array(object(stdClass))))
at preg_replace('/\?/', array(object(stdClass)), 'select city_name from cities where province_id = :id', '1') in helpers.php line 747
at str_replace_array('\?', array('id' => array(object(stdClass))), 'select city_name from cities where province_id = :id') in QueryException.php line 56
at QueryException->formatMessage('select city_name from cities where   province_id = :id', array('id' => array(object(stdClass))), object(ErrorException)) in QueryException.php line 39
at QueryException->__construct('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))), object(ErrorException)) in Connection.php line 715
at Connection->runQueryCallback('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))), object(Closure)) in Connection.php line 669
at Connection->run('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))), object(Closure)) in Connection.php line 342
at Connection->select('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))))
at call_user_func_array(array(object(MySqlConnection), 'select'), array('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))))) in DatabaseManager.php line 317
at DatabaseManager->__call('select', array('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))))) in Facade.php line 219
at DatabaseManager->select('select city_name from cities where province_id = :id', array('id' => array(object(stdClass)))) in Facade.php line 219
at Facade::__callStatic('select', array('select city_name from cities where province_id = :id', array('id' => array(object(stdClass))))) in AuthController.php line 122
at DB::select('select city_name from cities where province_id = :id', array('id' => array(object(stdClass)))) in AuthController.php line 122
at AuthController->getCities()
at call_user_func_array(array(object(AuthController), 'getCities'), array()) in Controller.php line 80
at Controller->callAction('getCities', array()) in ControllerDispatcher.php line 146
at ControllerDispatcher->call(object(AuthController), object(Route), 'getCities') in ControllerDispatcher.php line 94
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in RedirectIfAuthenticated.php line 24
at RedirectIfAuthenticated->handle(object(Request), object(Closure))
at call_user_func_array(array(object(RedirectIfAuthenticated), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96
at ControllerDispatcher->callWithinStack(object(AuthController), object(Route), object(Request), 'getCities') in ControllerDispatcher.php line 54
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\Auth\AuthController', 'getCities') in Route.php line 174
at Route->runController(object(Request)) in Route.php line 140
at Route->run(object(Request)) in Router.php line 724
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in  VerifyCsrfToken.php line 64
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'),  array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'),  array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in  StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'),  array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 64
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'),    array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 726
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'),   array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54

Why am I getting this error all the time? Am I right to think that the cause of that error is the 2-letter code being passed to the controller? Any help will be highly appreciated.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire