Laravel yajra datatable: não é possível recuperar o parâmetro de pesquisa da chamada ajax no controlador

Estou tentando criar uma dataTable com filtragem personalizada com a ajuda da tabela de dados yajra deAqu :

abela @HTML à vista:

  <form id="search-form" class="form-inline" method="POST" role="form" action="#">


      <select id="batch" name="batch">
        <option value="">Select</option>
        <option value="22">Skill Level CBE Dec 2018</option>
        <option value="2">Batch 2</option>

      </select>

      <button class="btn  btn-primary" type="submit">Search</button>

  </form>

     <table class="table table-striped table-bordered datatable" cellspacing="0" width="100%">

                                    <thead>

                                        <tr>



                                            <th>{{ getPhrase('S/N')}}</th>

                                            <th>{{ getPhrase('Batch')}}</th>
                                            <th>{{ getPhrase('Course')}}</th>
                                            <th>{{ getPhrase('Subject')}}</th>

                                            <th>{{ getPhrase('title')}}</th>

                                            <th>{{ getPhrase('otq_marks')}}</th>
                                            <th>{{ getPhrase('cr_marks')}}</th>

                                            <th>{{ getPhrase('total')}}</th>
                                            <th>{{ getPhrase('average')}}</th>




                                        </tr>

                                    </thead>



         </table>


        @section('footer_scripts')



         @include('common.datatables', array('route'=>URL_STUDENT_EXAM_GETATTEMPTS.$user->slug, 'route_as_url' => 'TRUE'))


        @stop

Comocommon.datatables, datatables.blade.php has:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

     tableObj = $('.datatable').DataTable({
            processing: true,
            serverSide: true,
                retrieve :true,
            // cache: true,
            type: 'GET',

            ajax: {
             url: '{{ $routeValue }}',
             data: function (d) {
                 d.batch = $('#batch').val();

             }
         }



     });


    $('#search-form').on('submit', function(e) {
        tableObj.draw();
        e.preventDefault();
    });

ajax valor da URL $ routeValue refere-se aURL_STUDENT_EXAM_GETATTEMPTS constante (a ser esclarecida mais tarde) usada na visualização de qualquer maneir

Quando seleciono um valor no"batch" suspenso e pressione o botãosubmit, uma chamada ajax é feita para a rota. Na ferramenta de inspeção do navegador, vejo que muitos parâmetros de consulta são adicionados ao URL do ajax e ao nossobatch param também está lá. Agora eu preciso recuperar essebatcharâmetro dentro do controlado

Agora, sobre o código do lado do servidor:

A constanteURL_STUDENT_EXAM_GETATTEMPTS usado no blade tem o valorPREFIX.'exams/student/get-exam-attempts/'

E emroute.php, a rota é definida como:

Route::get('exams/student/get-exam-attempts/{user_slug}/{exam_slug?}', 'StudentQuizController@getExamAttemptsData');

No controlador, tenho:

public function getExamAttemptsData(Request $request,$slug, $exam_slug = '')
    {

    //body goes here 

    }

Utilizei todos os métodos a seguir para obter obatch parâmetro no controlador, mas em vão:

$request->get('batch')
$request->query('batch')
Input::get('batch')

Como posso recuperar o valor debatch dentro do controlador?

EDITAR BTW eu estou usandouse Illuminate\Http\Request; para oRequest $request variável no parâmetro de função do controlador

EDIT2: A ferramenta de inspeção do navegador mostra o URL da solicitação do ajax como:

http: // localhost / lcbs / exams / student / obter-tentativas de exame / myuser123? draw = 2 & colunas% 5B0% 5D% 5Bdata% 5D = 0 ...... pesquisar% 5Bregex% 5D = false & lote = 22 & _ = 1541684388689.

Então você vê quebatch existe nos parâmetros de consulta. Mas dentro do controlador, o código$request->getQueryString() apenas mostra%2Fexams%2Fstudent%2Fget-exam-attempts%2Fmyuser123

And\URL::current() mostra http: // localhost / lcbs / exams / student / get-exam-tentou / myuser123

Isso significa, o$request perde a string de consulta complet

EDIT3: Adrian Hernandez-Lopez, estou colando o conteúdo COMPLETO do Kernel.php aqui:

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,

    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
        ],

        'api' => [
            'throttle:60,1',
        ],
    ];

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

        'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
        'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
        'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,
       // 'adminOrGuest' => \App\Http\Middleware\AdminOrGuestMiddleware::class,

    ];
}

questionAnswers(1)

yourAnswerToTheQuestion