Halo semuanya,
Saya menggunakan "yajra/laravel-datatables-oracle": "^6.3"
dan laravel 5.2.
Semuanya baik-baik saja dengan mendaftar datatables tetapi ketika saya mulai mencari saya mendapatkan kesalahan
SQLSTATE[42000]: Syntax error or access violation: 1583 Incorrect parameters in the call to native function 'LOWER' ...
public function index(Request $request){
$items = DB::table('items as it')->select('it.*','c.name as category')
->join('category as c', 'it.category_id', '=', 'c.id');
$datatables = Datatables::of($items)
->addColumn('no', function ($items) { return ''; }));
if ($keyword = $request->get('search')['value']) {
$datatables->filterColumn('name', 'whereRaw', "items.name like ? ", ["%$keyword%"]);
$datatables->filterColumn('category', 'whereRaw', "category.name like ? ", ["%$keyword%"]);
}
return $datatables->make(true);
}
$('#items_table').DataTable({
processing: true,
serverSide: true,
iDisplayLength: 25,
'responsive': true,
'language' : {
"sSearchPlaceholder": "Search..",
"lengthMenu": "_MENU_",
"search": "_INPUT_",
"paginate": {
"previous" : '<i class="icon md-chevron-left"></i>',
"next" : '<i class="icon md-chevron-right"></i>'
}
},
order: [[ 1, "asc" ]],
ajax: {
url : 'items/index',
type : "POST",
data : function (d) {}
},
columns: [
{ data: 'no', orderable: false, bSearchable: false },
{ data: 'name', name: 'name' },
{ data: 'category', name: 'category' },
],
"fnRowCallback" : function(nRow, aData, iDisplayIndex){
// For auto numbering at 'No' column
var start = tbl.page.info().start;
$('td:eq(0)',nRow).html(start + iDisplayIndex + 1);
},
});
Tolong bantu aku.
Terima kasih!
@seven9 sudahkah Anda mencoba memperbarui ke versi stabil terbaru v6.22.5
?
Hai @yajra ,
Saya sudah memperbarui dan mencobanya. Masalah itu terjadi ketika saya menggunakan tabel alias seperti
DB::table('items as it')
dan bergabunglah dengan banyak talbe dengan pembuat kueri laravel.
Terima kasih..
@seven9 , saya baru saja mendapatkan masalah yang sama, tetapi akhirnya menyelesaikannya. Perbaikannya ada di JS saya.
Saya memastikan properti kolom cocok dengan alias dan kolom sebenarnya.
Menggunakan contoh Anda:
data: 'name', name: 'name'
data: 'category', name: 'category'
nilai data : _alias_
nama-nilai : _kolom aktual_
mencoba:
data: 'name', name: 'it.name'
data: 'category', name: 'c.name'
Terima kasih @jedknyt dan perbaikan yang bagus.
@jedknyt Anda telah menyelamatkan saya banyak waktu bro
@jedknyt terima kasih telah berbagi solusi. 👍
Pertanyaan
$sales = \DB::table('driver_ride_transactions as drt')
->join('bookings', 'bookings.id', '=', 'drt.booking_id')
->join('businesses', 'businesses.id', '=', 'bookings.business_id')
->leftJoin('users as driver_u', 'drt.user_id', '=', 'driver_u.id')
->leftJoin('users as app_u', 'bookings.user_id', '=', 'app_u.id')
->select('drt.id', 'drt.status', 'driver_u.first_name as driver_name', 'app_u.first_name as app_user_name', 'businesses.name as destination', 'drt.created_at');
Kode Javascript
$('#sales-table').DataTable({
processing: true,
serverSide: true,
order: [ [4, 'desc'] ],
ajax: '{{ route('admin:fetch:ride:transactions') }}',
columns: [
{data: 'id', name: 'drt.id'},
{data: 'destination', name: 'destination'},
{data: 'driver_name', name: 'driver_name'},
{data: 'app_user_name', name: 'app_user_name'},
{data: 'created_at', name: 'drt.created_at'},
{data: 'status', name: 'drt.status'}
]
});
Semuanya berfungsi dengan baik, tetapi Masih mendapatkan kesalahan ini saat mencari _Kesalahan Pencarian Parameter salah dalam panggilan ke fungsi asli 'LOWER'_
Apa yang saya lewatkan? @yajra @jedknyt ?
@siddharthghedia karena Anda menggunakan join, saya pikir Anda harus memasukkan nama tabel juga di setiap kolom dan hindari menggunakan alias pada nilai name
. Gunakan nilai kolom yang sebenarnya.
columns: [
{data: 'id', name: 'drt.id'},
{data: 'destination', name: 'drt.destination'},
{data: 'driver_name', name: 'driver_u.first_name'},
{data: 'app_user_name', name: 'app_u.first_name'},
{data: 'created_at', name: 'drt.created_at'},
{data: 'status', name: 'drt.status'}
]
@yajra Terima kasih banyak telah menjawab, saya mencoba kode yang sama yang Anda tulis, tetapi masih memberi saya kesalahan yang sama dan Anda meminta untuk tidak menggunakan alias pada name
kan? Tapi di sini driver_u
dan app_u
sudah merupakan alias. Bagaimana saya bisa menyelesaikannya? Terima kasih sebelumnya.
Halo @siddharthghedia , saya memiliki masalah yang sama, apakah Anda punya solusi.
Terima kasih sebelumnya.
Itu banyak membantu saya, saya memecahkan masalah ... terima kasih telah berbagi solusinya
@siddharthghedia karena Anda menggunakan join, saya pikir Anda harus memasukkan nama tabel juga di setiap kolom dan hindari menggunakan alias pada nilai
name
. Gunakan nilai kolom yang sebenarnya.columns: [ {data: 'id', name: 'drt.id'}, {data: 'destination', name: 'drt.destination'}, {data: 'driver_name', name: 'driver_u.first_name'}, {data: 'app_user_name', name: 'app_u.first_name'}, {data: 'created_at', name: 'drt.created_at'}, {data: 'status', name: 'drt.status'} ]
TI bekerja untuk saya. Terima kasih banyak
@siddharthghedia karena Anda menggunakan join, saya pikir Anda harus memasukkan nama tabel juga di setiap kolom dan hindari menggunakan alias pada nilai
name
. Gunakan nilai kolom yang sebenarnya.columns: [ {data: 'id', name: 'drt.id'}, {data: 'destination', name: 'drt.destination'}, {data: 'driver_name', name: 'driver_u.first_name'}, {data: 'app_user_name', name: 'app_u.first_name'}, {data: 'created_at', name: 'drt.created_at'}, {data: 'status', name: 'drt.status'} ]
Ini bekerja untuk saya. Terima kasih banyak
Komentar yang paling membantu
@seven9 , saya baru saja mendapatkan masalah yang sama, tetapi akhirnya menyelesaikannya. Perbaikannya ada di JS saya.
Saya memastikan properti kolom cocok dengan alias dan kolom sebenarnya.
Menggunakan contoh Anda:
data: 'name', name: 'name'
data: 'category', name: 'category'
nilai data : _alias_
nama-nilai : _kolom aktual_
mencoba:
data: 'name', name: 'it.name'
data: 'category', name: 'c.name'