2016-04-24 14 views
0

モデルのすべてのレコードのリストを表示するにはyajra/laravel-datatables laravelパッケージを使用しています。yajra/laravel-datatablesのソフト削除されたモデルを含むチェックボックスの変更状況

ここで、単純なチェックボックスを変更することで、ソフト削除されたモデルを結果に含めることができます。

これは私のチェックボックスである:

<input class="checked-switch" type="checkbox" id="showDeleted" /> 

、これは結果を送信し、取得するために私のDataTableのjqueryのコードです:

$('#allCoursesTable').DataTable({ 
        processing: true, 
        serverSide: true, 
        "bSort": false, 
        "responsive": true, 
        ajax: { 
         url : '{!! route('coursesData') !!}', 
         data: function(d){ 
          d.showDeleted = $('#showDeleted').prop('checked') 
         } 
        }, 
        columns: [ 
         //columns properties come here 
        ] 
       }); 

     $('#showDeleted').change(function (e) { 
      console.log($(this).is(':checked')); 
      allCoursesTable.draw(); 
     }); 

そして、私はこれを書いバックエンドで:

public function coursesData (Request $request) 
    { 
     $courses = 
      Course::select(['course_id', 'title', 'start_date', 'end_date', 'picture', 'lesson_count', 'status', 'active', 'teacher','start_date','end_date','reg_start_date','reg_end_date']); 


     if ($request->get('showDeleted')) { 
      //what Can I do here??? 
     } 

     $datatable = app('datatables')->of($courses) 
      ->orderBy('created_at', 'desc') 

     // add Or edit columns come here 

     return $datatable->make(true); 
    } 

純粋に削除されたモデルを純粋なlaravelに含めるには、これを行うべきだと私は知っています:

ただし、チェックボックスの状態に基づいてwithTrashed()メソッドを追加または削除する方法はわかりません。

どうすればいいですか?

答えて

0

bobbybouwmann answer at laracastsによると、解決策は次のとおりです。

$courses = Course::select(['course_id', 'title', 'start_date', 'end_date', 'picture', 'lesson_count', 'status', 'active', 'teacher','start_date','end_date','reg_start_date','reg_end_date']); 

// It depends on what you pass through, but I would pass 1 or something. 
if ($request->has('checkbox_field') && $request->get('checkbox_field') == 1) { 
    $courses = $courses->withTrashed(); 
} 


$datatable = app('datatables') 
    ->of($courses) 
    ->orderBy('created_at', 'desc') 

とJavaScriptコードで:

data: function(d){ 
    d.showDeleted = $('#showDeleted').is(':checked') ? 1 : 0; 
} 

今、私の事作業罰金。

関連する問題