2015-04-30 6 views
0

Я использую http://datatables.net/andhttps://github.com/yajra/laravel-datatables-oracle. Когда я пытаюсь выполнить поиск, я получаю всплывающее окно с «ошибкой Ajax», я, похоже, сузил его, чтобы быть проблемой, когда когда-либо есть соединение в запросе.Datatables с использованием laravel-datatables-oracle, получающего ошибку Ajax

Вот метод, используемый для запроса Ajax (удаленные поля для простоты):

$leads = Lead::leftJoin('lead_status', 'leads.status', '=', 'lead_status.id') 
->select('leads.id', 'leads.email', 'lead_status.status'); 

Это прекрасно работает, как я сказал, что это только тогда, когда я пытаюсь найти я получаю ошибку, я не получаю при сортировке или подкачке результатов.

Когда в запросе нет соединения, я не получаю никаких проблем.

Been на этом некоторое время теперь и не знает, что делать ..

+0

Конечно, это не имеет ничего общего с DataTables - проблема связана с запросом к базе данных. Можете ли вы отлаживать результаты и сравнивать их? – markpsmith

+0

Что может быть неправильным в запросе? – Alex

ответ

3

При использовании присоединиться заявления, вы должны указать в JS полного имени поля. Вы должны использовать шаблон table.column. См пример кода ниже:

$('#posts-table').DataTable({ 
     processing: true, 
     serverSide: true, 
     ajax: 'joins-data', 
     columns: [ 
      {data: 'id', name: 'posts.id'}, 
      {data: 'title', name: 'posts.title'}, 
      {data: 'name', name: 'users.name'}, 
      {data: 'created_at', name: 'posts.created_at'}, 
      {data: 'updated_at', name: 'posts.updated_at'} 
     ] 
    }); 

А на контроллере

public function getJoinsData() 
    { 
     $posts = Post::join('users', 'posts.user_id', '=', 'users.id') 
      ->select(['posts.id', 'posts.title', 'users.name', 'users.email', 'posts.created_at', 'posts.updated_at']); 

     return Datatables::of($posts) 
      ->editColumn('title', '{!! str_limit($title, 60) !!}') 
      ->editColumn('name', function ($model) { 
       return \HTML::mailto($model->email, $model->name); 
      }) 
      ->make(true); 
    } 
+0

Уважаемый сэр @yajra, когда я помещаю эту строку в свой код, она дает мне ошибку. -> editColumn ('name', function ($ model) { return \ HTML :: mailto ($ model-> email, $ model-> name); }). Поскольку я новичок в данных, застрявших здесь. пожалуйста помогите. – Raham

Смежные вопросы