Я не могу передать переменную из запроса Datatables ajax в контроллер - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь передать переменную в моем запросе данных javascript моему контроллеру в Laravel. Я передаю его с параметром data:{} из ajax Datatable, но когда я пытаюсь получить запрос в моем контроллере 'getUsers', запрос пуст, почему? Как я могу решить проблему? Я пытаюсь разделить запрос таблицы пользователей и запрос таблицы мусора в одной таблице.

Здесь мой запрос ajax с переменной 'd.trashed' (true или false)

var dataTable = $('#users-table').DataTable({
        processing: true,
        serverSide: true,
        //deferRender: true,
        ajax: {
            url: config.routes.userUrl,
        data: function (d) {
            d.src_name = $('input[name=src_name]').val();
            d.src_role = $('select[name=src_role]').val();
            d.date_from = $('input[name=date_from]').val();

                d.date_to = $('input[name=date_to]').val();
                d.trashed = trashControl;
            }
        },
        columns: [
        {data: 'check', name: 'check', orderable: false, class: 'select-checkbox', targets: 0, 'checkboxes': {
                'selectRow': true
            }},
        {data: 'user_thumb', name: 'user_thumb', orderable: false, searchable: false},
        {data: 'name', name: 'name', class: 'user_name'},
        {data: 'email', name: 'email', class: 'user_email'},
        {data: 'role', name: 'role'},
        {data: 'created_at', name: 'created_at'},
        {data: 'updated_at', name: 'updated_at'},
        {data: 'action', name: 'action', orderable: false, searchable: false}
    ],
        order: [[ 5, "desc" ]]
});

И вот мой контроллер, когда я пытаюсь получить переменную $ req-> trashed. В консольном запросе браузера переменная запроса присутствует и имеет значение:

public function getUsers(Request $req){
        if($req->trashed == false){
            $users = User::select(['id', 'user_thumb', 'name', 'email', 'role', 'created_at', 'updated_at']);
        }else{
            $users = User::select(['id', 'user_thumb', 'name', 'email', 'role', 'created_at', 'updated_at'])->onlyTrashed();
        }

        return DataTables::of($users)
            ->filter(function ($query) use ($req) {
                if ($req->has('src_name')) {
                    $regex = $req->get('src_name');
                    $query->where('name', 'like', '%'.$regex.'%');
                }
                if ($req->has('src_role')) {
                    $regex = $req->get('src_role');
                    $query->where('role', 'like', '%'.$regex.'%');
                }
                if($req->get('date_from') != '' && $req->get('date_to') == ''){
                    $regex = $req->get('date_from');
                    $query->whereDate('created_at', '=', $regex);
                }
                if($req->get('date_from') != '' && $req->get('date_to') != ''){
                    $from = $req->get('date_from');
                    $to = $req->get('date_to');
                    $query->whereBetween('created_at', [$from, $to])->get();
                }
            }, true)
            ->addColumn('check', function () {
                return '';
            })
            ->addColumn('user_thumb', function ($user) {
                $guid = $user->user_thumb ? asset($user->user_thumb) : asset($user->placeholder);
                return '<img src="'.$guid.'" width="50" class="rounded-circle">';
            })
            ->addColumn('action', function ($user) use ($req) {
                $buttons = ($req->trashed == false) ? $this->getActionButtons($user) : $this->getActionTrashedButtons($user);
                return $buttons;
            })
            ->editColumn('created_at', function($user){
                return $user->created_at ? $user->created_at->format('d M Y') : '';
            })
            ->editColumn('updated_at', function($user){
                return $user->updated_at ? $user->updated_at->format('d M Y') : '';
            })
            ->setRowClass(function () {
                return 'row-data';
            })
            ->rawColumns(['user_thumb', 'action'])
            ->make(true);
    }

Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...