2017-05-31 21 views
0

私はyajraのdatatableとlaravelのデータ型を使用しています。私も、私のリポジトリ持っララベルとjqueryのデータテーブル

employeeTable = $('#employeeTable').DataTable({ 
    deferLoading: 0, 
    serverSide: true, 
    processing: true, 
    ajax: { 
    url: "{!! route('ajaxlistemployee') !!}", 
    type: "POST", 
    data: ajaxData, 
    dataType: "JSON", 
    dataSrc: function (json) { 
     console.log(json); 
     return json.data; 
    } 
    }, 
    columns: [ 
    { data: 'id', name: 'id'}, 
    { data: 'name', name: 'name'}, 
    { data: 'manager_id', name: 'manager_id'}, 
    { data: 'manager_name', name: 'manager_name'}, 
    { data: 'is_manager', name: 'is_manager'}, 
    { data: 'region', name: 'region'}, 
    { data: 'country', name: 'country'}, 
    { data: 'domain', name: 'domain'}, 
    { data: 'subdomain', name: 'subdomain'}, 
    { data: 'management_code', name: 'management_code'}, 
    { data: 'job_role', name: 'job_role'}, 
    { data: 'employee_type', name: 'employee_type'}, 
    ], 
    columnDefs: [ 
    { 
     "targets": [0, 2], "visible": false, "searchable": false 
    } 
    ] 
}); 

私は私の見解については、以下の持っている

public function getEmployeeList($where = null){ 
    $employee = \DB::table('employee AS E') 
    ->select(
     'E.id', 
     'E.name', 
     'E.manager_id', 
     'M.name AS manager_name', 
     'E.is_manager', 
     'E.region', 
     'E.country', 
     'E.domain', 
     'E.subdomain', 
     'E.management_code', 
     'E.job_role', 
     'E.employee_type' 
    )->join('employee AS M', 'E.manager_id', '=', 'M.id'); 

    if (!empty($where['manager'])) 
    { 
    $employee->where(function ($query) use ($where) { 
     foreach ($where['manager'] as $w) 
     { 
     $query->orWhere('E.manager_id',$w); 
     } 
    }); 
    } 

    return $employee; 
} 

をそして私は私のAjaxcontroller持っている:

public function getAjaxListEmployee(Request $request){ 
    $input = $request->all(); 
    $return = $this->employeeRepository->getEmployeeList($input); 
    $data = Datatables::of($return)->make(true); 
    return $data; 
} 

それは非常に単純で、検索と並べ替えが機能していないことを除いて、すべてが機能しています。

なぜ私は理解できず、さまざまな構成を試しました。
しかし、誰も私に必要なものを手に入れようと努力していません。

+0

オープン開発ツールを見つけて、あなたが取得しているかのエラーを参照することは非常に困難だったので、これは他人を助けることを願っています。 – linuxartisan

+0

@リチャードはコンソールのエラーをチェックし、ここに投稿します –

答えて

0

多くの試行錯誤の末、なぜこれが機能していなかったのか分かりました。

Laravelのdatatables関数が正しく動作するように見えますが、テーブルの定義のように使用することはできません。コードで

:それは後にうまく働いた

public function getEmployeeList($where = null){ 
    $employee = \DB::table('employee') 
    ->select(
     'employee.id', 
     'employee.name', 
     'employee.manager_id', 
     'M.name AS manager_name', 
     'employee.is_manager', 
     'employee.region', 
     'employee.country', 
     'employee.domain', 
     'employee.subdomain', 
     'employee.management_code', 
     'employee.job_role', 
     'employee.employee_type' 
    )->join('employee AS M', 'employee.manager_id', '=', 'M.id'); 

:ちょうどそれを変ることで

public function getEmployeeList($where = null){ 
    $employee = \DB::table('employee AS E') 
    ->select(
     'E.id', 
     'E.name', 
     'E.manager_id', 
     'M.name AS manager_name', 
     'E.is_manager', 
     'E.region', 
     'E.country', 
     'E.domain', 
     'E.subdomain', 
     'E.management_code', 
     'E.job_role', 
     'E.employee_type' 
    )->join('employee AS M', 'E.manager_id', '=', 'M.id'); 

私はブラウザに...

関連する問題