Ошибка в таблицах данных при использовании поискового ввода

У меня есть таблица, созданная с помощью плагина datatables.

загружен правильно, вот код запроса:

    public function tabla(){
        try{
            $sql = DB::table('personas AS p')
                ->select('p.id','p.cedula', 'p.nombres', 'p.apellidos', 'c.nombre AS cargos', 'p.status', 'c.id AS id_cargos')
                ->join('cargos AS c', 'c.id', '=', 'p.id_cargos');
            return Datatables::of($sql)->make(true);
        }catch(\Illuminate\Database\QueryException $e){
            $array = array(
                'mensaje' => $e->getMessage(),
                'codigo' => $e->getCode(),
                'sql' => $e->getSql(),
                'bindings' => $e->getBindings(),
            );
            return Response::json(array('ErrorSql' => $array));
        }
}

, если я получу json, который возвращает меня, будет

{
  "draw": 1,
  "recordsTotal": 12,
  "recordsFiltered": 12,
  "data": [
    {
      "id": 3,
      "cedula": 9335797,
      "nombres": "Johnathan",
      "apellidos": "Waters",
      "cargos": "Receptionist and Information Clerk",
      "status": true,
      "id_cargos": 5
    },
    {
      "id": 6,
      "cedula": 10173957,
      "nombres": "Bessie",
      "apellidos": "Emard",
      "cargos": "Painter",
      "status": true,
      "id_cargos": 4
    },
    {
      "id": 7,
      "cedula": 12017974,
      "nombres": "Eric",
      "apellidos": "Kuhn",
      "cargos": "Receptionist and Information Clerk",
      "status": true,
      "id_cargos": 5
    },
    {
      "id": 1,
      "cedula": 12018717,
      "nombres": "Norbert",
      "apellidos": "Langworth",
      "cargos": "Financial Analyst",
      "status": false,
      "id_cargos": 3
    },
    {
      "id": 8,
      "cedula": 14034453,
      "nombres": "Dianna",
      "apellidos": "Zemlak",
      "cargos": "Financial Analyst",
      "status": false,
      "id_cargos": 3
    },
    {
      "id": 10,
      "cedula": 16213327,
      "nombres": "Cora",
      "apellidos": "Funk",
      "cargos": "Technical Program Manager",
      "status": true,
      "id_cargos": 8
    },
    {
      "id": 5,
      "cedula": 19362870,
      "nombres": "Lera",
      "apellidos": "Barton",
      "cargos": "Massage Therapist",
      "status": true,
      "id_cargos": 6
    },
    {
      "id": 13,
      "cedula": 19857587,
      "nombres": "Genesis Andreina",
      "apellidos": "Rodriguez Gomez",
      "cargos": "Architect",
      "status": true,
      "id_cargos": 10
    },
    {
      "id": 4,
      "cedula": 19912901,
      "nombres": "Howell",
      "apellidos": "Balistreri",
      "cargos": "Plumber OR Pipefitter OR Steamfitter",
      "status": true,
      "id_cargos": 9
    },
    {
      "id": 14,
      "cedula": 19974834,
      "nombres": "Pablo Contreras",
      "apellidos": "Contreras Guevara",
      "cargos": "Manager",
      "status": true,
      "id_cargos": 2
    }
  ],
  "queries": [
    {
      "query": "select count(*) as aggregate from (select '1' as \"row_count\" from \"personas\" as \"p\" inner join \"cargos\" as \"c\" on \"c\".\"id\" = \"p\".\"id_cargos\") count_row_table",
      "bindings": [

      ],
      "time": 2.86
    },
    {
      "query": "select \"p\".\"id\", \"p\".\"cedula\", \"p\".\"nombres\", \"p\".\"apellidos\", \"c\".\"nombre\" as \"cargos\", \"p\".\"status\", \"c\".\"id\" as \"id_cargos\" from \"personas\" as \"p\" inner join \"cargos\" as \"c\" on \"c\".\"id\" = \"p\".\"id_cargos\" order by \"cedula\" asc limit 10 offset 0",
      "bindings": [

      ],
      "time": 1.37
    }
  ],
  "input": {
    "draw": "1",
    "columns": [
      {
        "data": "0",
        "name": "",
        "searchable": "true",
        "orderable": "false",
        "search": {
          "value": "",
          "regex": "false"
        }
      },
      {
        "data": "cedula",
        "name": "",
        "searchable": "true",
        "orderable": "true",
        "search": {
          "value": "",
          "regex": "false"
        }
      },
      {
        "data": "nombres",
        "name": "",
        "searchable": "true",
        "orderable": "true",
        "search": {
          "value": "",
          "regex": "false"
        }
      },
      {
        "data": "apellidos",
        "name": "",
        "searchable": "true",
        "orderable": "true",
        "search": {
          "value": "",
          "regex": "false"
        }
      },
      {
        "data": "cargos",
        "name": "",
        "searchable": "true",
        "orderable": "true",
        "search": {
          "value": "",
          "regex": "false"
        }
      },
      {
        "data": "5",
        "name": "",
        "searchable": "true",
        "orderable": "true",
        "search": {
          "value": "",
          "regex": "false"
        }
      },
      {
        "data": "status",
        "name": "",
        "searchable": "true",
        "orderable": "true",
        "search": {
          "value": "",
          "regex": "false"
        }
      }
    ],
    "order": [
      {
        "column": "1",
        "dir": "asc"
      }
    ],
    "start": "0",
    "length": "10",
    "search": {
      "value": "",
      "regex": "false"
    },
    "_": "1479441344250"
  }
}

, но после того, как я использую поисковый ввод, он выбрасывает меня следующая ошибка:

{"ErrorSql": {"message": "SQLSTATE [42703]: неопределенный столбец: 7 ОШИБКА: столбец \ u00abcargos \ u00bb \ nLINE 1: ... (CAST (\ "фамилия \" как текст)) LIKE $ 4 или LOWER (CAST (\ "поручает \" a ... \ n ^ \ nСОВЕТ: Возможно, вы имели в виду ссылку на столбец \ "p.id_cargos \". ( SQL: выберите количество () как агрегат (выберите «1» как \ «row_count \» из «людей» как «p») внутреннее объединение «зарядов» как «c» на \ "c \". \ "id \" = \ "p \". \ "charge_id \" где (LOWER (CAST (\ "p \". \ "id \" как TEXT)) LIKE% a% или LOWER ( CAST (\ "cedula \" как TEXT)) LIKE% a% или LOWER (CAST (\ "names \" as TEXT)) LIKE% a% или LOWER (CAST (\ "фамилии \" как TEXT)) LIKE% a % или LOWER (CAST (\ "начисление \" как текст)) LIKE% a% или LOWER (CAST (\ "p \". \ "status \" как текст)) LIKE% a% или LOWER (CAST (\ ") status \ "as TEXT)) LIKE% a%)) count_row_table)", "code": "4 2703 "," sql ":" выберите количество () как совокупность из (выберите '1' как \ "row_count \" из \ "people \" как \ "p \" внутреннее объединение \ "начисляет \" как \ "c \" on \ "c \". \ "id \" = \ "p \". \ "charge_id \" где (НИЖЕ (CAST (\ "p \". \ "id \" как ТЕКСТ)) НРАВИТСЯ ? или НИЖЕ (CAST (\ "Седула \" как текст)) как? или НИЖЕ (CAST (\ "имена \" как текст)), как? или НИЖЕ (CAST (\ "фамилия \" как ТЕКСТ)) КАК? или НИЖЕ (CAST (\ "заряжает \" как ТЕКСТ)) НРАВИТСЯ? или НИЖЕ (CAST (\ "p \". \ "status \" как ТЕКСТ)) НРАВИТСЯ? или LOWER (CAST (\ "status \" как TEXT)) LIKE?)) count_row_table "," bindings ": ["% a% ","% a% ","% a% ","% a% ", "% a%", "% a%", "% a%"]}}

можете проверить это в jsoneditor

ошибка говорит " нет столбца "сборы" ", почему? Если первый запрос не показал мне никакой ошибки, почему он будет делать это, когда я пытаюсь использовать поисковую систему?

0
задан 31.05.2017, 20:57
1 ответ

я не нашел какое-то решение относительно query или какого-то другого сомнения и единственное решение, которое я нашел, состояло в том, чтобы не получать данные по Вашим именам, а из-за Вашего положения.

            "columns": [
                {data: 0, searchable: false, orderable: false, searchable: false, render: function( data, type, full, meta ){
                        return meta.row+1;
                    }
                },
                {data: 1},
                {data: 2},
                {data: 3},
                {data: 4},
                {data: 5},
                {'defaultContent':  '<button type="button" class="editar edit-modal btn btn-info ">'+
                                        '<span class="fa fa-edit"></span> Editar'+
                                    '</button> '+
                                    '<button type="button" class="eliminar delete-modal btn btn-danger">'+
                                        '<span class="fa fa-trash"></span> Eliminar'+
                                    '</button>'
                },
            ],

таким образом не бросает в меня ошибки sql.

Спасибо равного способа.

0
ответ дан 24.11.2019, 12:33