我是Laravel的新手。 我能够使用jquery插件运行datatable。
我想要服务器端处理。 前几天我遇到了错误404。 今天我遇到
500内部服务器错误。 调用未定义的方法Yajra \ Datatables \ Datatables:
感谢您的关注。
这是路线。
index.blade.php
服务提供者
别名
然后加入
公共功能索引(请求$ request){
$categories = Category::all();
$query = Accession::select('*');
//this is for links that will run query according to
//category type
if ($request->input('type')){
switch ($request->input('type')){
case 'Photo':
$query->where('category_id', 2);
break;
case 'Field Notes':
$query->where('category_id', 3);
break;
case 'Audio Recording':
$query->where('category_id', 4);
break;
case 'Instrument':
$query->where('category_id', 5);
break;
case 'Music Scores':
$query->where('category_id', 6);
break;
case 'Video':
$query->where('category_id', 7);
break;
case 'Vertical Files':
$query->where('category_id', 8);
break;
default:
$query->orderBy('id', 'asc')->get();
}
$accessions = $query->orderBy('id')->get();
return view('accessions.index', compact('accessions', 'categories'));
}
//this is for search bar
$search = $request->input('search'); //<-- we use global request to get the param of URI
if($search){
$accessions = Accession::where('groupcountry','LIKE','%'.$search.'%')
->orWhere('description', 'LIKE', '%'.$search.'%')
->orWhere('author', 'LIKE', '%'.$search.'%')
->orWhere('accession_no','LIKE','%'.$search.'%')
->orWhere('year','LIKE','%'.$search.'%')
->paginate(10);
return view('accessions.index', compact('accessions', 'categories'));
}
else{
$accessions = Accession::orderBy('id', 'asc')->get();
return view('accessions.index', compact('accessions', 'categories'));
}
}
我将名称空间更改为使用Yajra \ Datatables \ Facades \ Datatables;
现在,表显示了收到的所有错误。
错误是错误200
尝试检查ajax响应以更好地了解错误。 您可能还需要仔细检查您的列和js与您的表结构是否匹配。 这可能是一个js问题。
感谢您的答复。 是的,我已经检查了ajax响应。 JSON皮棉看起来不错。 错误200消失了。 我检查了列和js,并使其与表结构匹配。 到目前为止,现在的错误是
将仔细检查
使用php artisan serve
时由于环境问题, 404 Not Found是dataTables的间歇性问题。 请使用代客,宅基地或wamp / xampp来避免此问题。
@yajra 。 是的。 我目前正在使用xampp。 搜索继续
路线定义已审核。 间歇性404,但ajax返回数据。 我认为我必须在环境问题上达成共识。
在heroku中实时部署了该应用程序。 404不见了。 因此,这是已确认的环境问题。 关闭这个。 @yajra感谢您查看错误。 您的文档还为我提供了左联接以及查看和编辑按钮的帮助,谢谢。
上面给出的解决方案可以将您的项目转移到XAMPP的HTDOCS或WAMPP的www或直接运行它
@ marker17只需使您的javascript和web.php如下
$(document).ready(function () {
var table = $('#example').DataTable({
dom: 'lBrtip',
processing: true,
serverSide: true,
ajax: {
'url':'{!!url("ajax/chapter/list")!!}',
'type': 'POST',
'headers': {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
},
orderCellsTop: true,
fixedHeader: true,
"columns": [{
data: 'DT_RowIndex',
orderable: false,
searchable: true
},
{data: 'stream_id'},
{data: 'course_id'},
{data: 'subject_id'},
{data: 'chapter_name'},
{data: 'status'},
{data: 'edit_delete',orderable: false},
],
});
});
并在web.php中
路线::任何('ajax / chapter / list','YourController @Method ');
这段代码对我有用。
@ marker17只需使您的javascript和web.php如下
$(document).ready(function () { var table = $('#example').DataTable({ dom: 'lBrtip', processing: true, serverSide: true, ajax: { 'url':'{!!url("ajax/chapter/list")!!}', 'type': 'POST', 'headers': { 'X-CSRF-TOKEN': '{{ csrf_token() }}' } }, orderCellsTop: true, fixedHeader: true, "columns": [{ data: 'DT_RowIndex', orderable: false, searchable: true }, {data: 'stream_id'}, {data: 'course_id'}, {data: 'subject_id'}, {data: 'chapter_name'}, {data: 'status'}, {data: 'edit_delete',orderable: false}, ], });
});
并在web.php中
路线::任何('ajax / chapter / list','YourController @Method ');
这段代码对我有用。
拯救我的一天
最有用的评论
使用
php artisan serve
时由于环境问题, 404 Not Found是dataTables的间歇性问题。 请使用代客,宅基地或wamp / xampp来避免此问题。