Searchbar ile arama yaptığımda bir sıkıntı yokken sutun sutun arama yaptığımda veriler hatalı geliyor. Örneğin oyun arama kısmında arama yaptığımda herşey yolundayken kategori kısmında arama yaptığımda kategorinin ismi oyun kısmındaki sutuna kayıyor ve veriler hatalı geliyor.
HTML Kodlarım
<table id="kt_games_for_panel" class="table table-row-bordered table-row-dashed gy-4 align-middle fw-bolder">
<!--begin::Head-->
<thead class="fs-7 text-gray-400 text-uppercase text-center">
<tr>
<th class="">Oyun Adı</th>
<th class="">Kategori</th>
<th class="">Bölge</th>
<th class="">Yayıncı</th>
<th class="">Dil</th>
<th class="">Durum</th>
<th class="">Min. satış miktarı</th>
</tr>
<tr>
<th class="">
<input type="text" class="form-control form-control-black form-control-sm w-200px" style="display:inline-block;" id="column0_search">
</th>
<th class="">
<input type="text" class="form-control form-control-black form-control-sm w-200px" style="display:inline-block;" id="column1_search">
</th>
<th class="">
<input type="text" class="form-control form-control-black form-control-sm w-200px" style="display:inline-block;" id="column2_search">
</th>
<th class="">
<input type="text" class="form-control form-control-black form-control-sm w-200px" style="display:inline-block;" id="column3_search">
</th>
<th class="">
<input type="text" class="form-control form-control-black form-control-sm w-200px" style="display:inline-block;" id="column4_search">
</th>
<th class="">
<select id="column5_search" class="form-select form-select-solid form-select-sm filter w-200px">
<option value="1">Aktif</option>
<option value="2">Pasif</option>
</select>
</th>
<th class=""></th>
</tr>
</thead>
<!--end::Head-->
<!--begin::Body-->
<tbody class="fs-6">
</tbody>
</table>Javascript kodlarımtable = $("#kt_games_for_panel")
.DataTable({
processing: true,
serverSide: true,
paging: true,
lengthChange: true,
searching: true,
ordering: false,
info: true,
autoWidth: true,
ajax: dataTableRoute,
pageLength:10,
lengthMenu: [
[10 , 20 , 50 , 100 , 200, 500 , 1000 , -1],
[ '10 rows', '20 rows', '50 rows', '100 rows' , '200 rows' , '500 rows' , '1000 rows' ,'Show all']
],
columns: [
{ data: "name" , name:"games.name" , orderable:false},
{ data: "category.name" , name:"category.name" , orderable:false},
{ data: "region.name" , name:"region.name" , orderable:false},
{ data: "publisher.name" , name:"publisher.name", orderable:false},
{ data: "languages" , name:"languages" , orderable:false, render:function(data,type,row){
var languages = '';
$.each( data , function( i, l ){
languages += '<span class="badge badge-success d-inline-block m-1">'+l+'</span> ';
});
return languages;
}},
{ data: "status", name: "games.status" , render:function(data,type,row){
var button;
if(data === 'Active'){
button = `<span class="badge badge-success d-inline-block m-1">Active</span>`;
}else if (data === 'Passive'){
button = `<span class="badge badge-danger d-inline-block m-1">Passive</span>`;
}
return button;
} , orderable:false},
{ data: "min_sales", name: "games.min_sales" , orderable:false },
],
dom: "Brtilp",
buttons: [
{ extend: "excel", className: "excelButton", exportOptions: {
columns: [ 0, 1 ,2, 3, 4, 5]
}},
],
});
$("#kt_filter_search").keyup(function () {
table.search($(this).val()).draw();
});
$('#column0_search').on( 'keyup', function () {
table
.columns( 0 )
.search( this.value )
.draw();
});
$('#column1_search').on( 'keyup', function () {
table
.columns( 1 )
.search( this.value )
.draw();
});
$('#column2_search').on( 'keyup', function () {
table
.columns( 2 )
.search( this.value )
.draw();
});
$('#column3_search').on( 'keyup', function () {
table
.columns( 3 )
.search( this.value )
.draw();
});
$('#column4_search').on( 'keyup', function () {
table
.columns( 4 )
.search( this.value )
.draw();
});
$('#column5_search').on('change', function () {
table
.columns( 5 )
.search( this.value )
.draw();
});Php controllerım$games = Game::with(['category' , 'publisher' , 'region' , 'languages']);
return Datatables::of($games)
->editColumn('status', function ($data) {
if($data->status === "1"){
return 'Active';
}else{
return 'Passive';
}
})
->filterColumn('languages', function ($query, $keyword) {
$query->whereHas('languages.language', function ($q) use ($keyword) {
$q->where('name', 'LIKE', "%{$keyword}%");
});
})
->editColumn('languages', function ($data) {
$name = [];
foreach ($data->languages as $key => $value) {
$name[] = $value->language->name;
}
return $name;
})
->make(true);

