2017-04-25 12 views
0

이 패키지 https://github.com/yajra/laravel-datatables을 패키지에 추가했으며이를 응용 프로그램에서 사용하려고합니다. Laravel 5.4 with datatables

는이 컨트롤러

public function getTasks() 
    { 
     return Datatables::of(Employees::query())->make(true); 
     //returns json 
    } 

이 코드는 datatables를 containining보기를로드 인 경로

Route::get('tasks', '[email protected]')->name('datatable.tasks'); 

이다보기

@section('content') 
    <table class="table table-bordered" id="users-table"> 
     <thead> 
      <tr> 
       <th>Emp No</th> 
       <th>Birth Date</th> 
        <th>First Name</th> 
        <th>Last Name</th> 
        <th>Gender</th> 
        <th>Hire Date</th> 

      </tr> 
     </thead> 
    </table> 
@stop 

@push('scripts') 

<script type="text/javascript"> 
$(function() { 
    $('#users-table').DataTable({ 
     processing: true, 
     serverSide: true, 
     responsive: true, 
     ajax: 'http://localhost:8000/tasks', 
     columns: [ 
      { data: 'emp_no', name: 'emp_no' } 
      { data: 'birth_date', name: 'birth_date' }, 
      { data: 'first_name', name: 'first_name' }, 
      { data: 'last_name', name: 'last_name' }, 
      { data: 'gender', name: 'gender' }, 
      { data: 'hire_date', name: 'hire_date' } 
     ] 
    }); 
}); 
</script> 

@endpush 
@endsection 

입니다.

URL http://localhost:8000/tasks은 웹 브라우저에서 json을 반환하지만 데이터 테이블은 절대로 내보기에서 렌더링되지 않습니다. 내보기에 체크인 할 때 브라우저 오류가 없습니다.

무엇이 문제일까요?.

답변

0

두 개의 메소드를 하나 만들고, 우리의 뷰와 우리의 datatables ajax 요청을 처리 할 다른 메소드를 디스플레이하십시오.

public function viewTasks() 
{ 
    return view('Tasks.index'); 
} 

프로세스 우리 datatables 아약스 요청

public function getTasks() 
{ 
    return Datatables::of(Employees::query())->make(true); 
} 

참조 링크 우리의보기를 표시합니다 - Yajra Datatable

+0

부트 스트랩을 그 'Route :: get ('tasks ','PrototypeController @ getTasks ') -> name (') '이라는 뷰를 표시하고, 다른 하나는 ajax 요청을 처리하기 위해 Route :: get ('bulkOutbox ','PrototypeController @ bulkOutbox ' 'dat ' –

+0

이 뷰를 렌더링하고 해당 URL을 실행하는 첫 번째 bulkOutbox http : // localhost : 8000/bulkOutbox –

+0

먼저 bulkOutbox를로드 중이며 아무것도 표시하지 않습니다. mysql 샘플 데이터베이스를 설치했다면, 그것을 테스트 할 수 있습니다. –

0

당신은 당신의 컨트롤러에서 변경해야합니다. 새로운 경로 추가에 대한

public function task() 
    { 
     return view('datatables.Index'); 
    } 

변경 파일 web.php의 : 데이터 테이블을 보여주는 아래 코드를 추가

Route::get('employee','[email protected]'); 

데이터 테이블 CDN을 추가하고 이미 컨트롤러를 가지고도

<link href="https://datatables.yajrabox.com/css/app.css" rel="stylesheet"> 
    <link href="https://datatables.yajrabox.com/css/datatables.bootstrap.css" rel="stylesheet"> 
    <link href='https://fonts.googleapis.com/css?family=Lato:400,700,300|Open+Sans:400,600,700,800' rel='stylesheet' 
      type='text/css'> 
+0

그리고 나는 블레이드 파일을 바꾸어야한다고 생각한다. 왜냐하면 '@ 항목'은 '@sctipt'앞에 멈추기 때문입니다. master.blade.php를 만들면 .. 감사합니다. –