Load/Save 使用 Laravel 对数据表进行排序和过滤选项
Load/Save sorting & filter options on DataTables using Laravel
我需要保存分页、排序和搜索输入的状态,最终利用 Laravel 和 API 而不是数据库。我不想使用 yajra/laravel-datatables
,因为我已经创建了我需要的复杂数据表。
例子
<script type="text/javascript">
$(document).ready(function () {
var table = $('#Whosebug-datatable').DataTable({
"stateSave": true,
"stateSaveCallback": function (settings, data) {
$.ajax({
"url": "/api/save_state",
"data": data,
"dataType": "json",
"success": function (response) {}
});
},
"stateLoadCallback": function (settings) {
var o;
$.ajax({
"url": "/api/load_state",
"async": false,
"dataType": "json",
"success": function (json) { o = json; }
});
return o;
}
});
});
</script>
URL:“/api/load_state”指向 Laravel 路由,路由指向 Controller 上的特定方法。我看到它正在正确调用方法。但是,我不知道它发送给我什么或者我如何更改 JS 以告诉它给我我需要的东西。一旦我有一个对象(或其他东西),将它发回并在用户返回页面时应用它。
根据描述,看起来一切正常,您只需要一种方法来调试收到的数据,因此您可以使用 Log 来执行此操作:
Route::get('/api/load_state', function() {
\Log::info(app('request')->all());
});
并跟踪日志
tail -f storage/logs/laravel.log
所以如果你点击
http://domain.dev/api/load_state?what=1
你应该看看
要将 json 对象返回给客户端,您可以这样做
Route::get('/api/load_state', function(Request $request) {
return response()->json(
User::find($request->get('user_id'))
);
});
我需要保存分页、排序和搜索输入的状态,最终利用 Laravel 和 API 而不是数据库。我不想使用 yajra/laravel-datatables
,因为我已经创建了我需要的复杂数据表。
例子
<script type="text/javascript">
$(document).ready(function () {
var table = $('#Whosebug-datatable').DataTable({
"stateSave": true,
"stateSaveCallback": function (settings, data) {
$.ajax({
"url": "/api/save_state",
"data": data,
"dataType": "json",
"success": function (response) {}
});
},
"stateLoadCallback": function (settings) {
var o;
$.ajax({
"url": "/api/load_state",
"async": false,
"dataType": "json",
"success": function (json) { o = json; }
});
return o;
}
});
});
</script>
URL:“/api/load_state”指向 Laravel 路由,路由指向 Controller 上的特定方法。我看到它正在正确调用方法。但是,我不知道它发送给我什么或者我如何更改 JS 以告诉它给我我需要的东西。一旦我有一个对象(或其他东西),将它发回并在用户返回页面时应用它。
根据描述,看起来一切正常,您只需要一种方法来调试收到的数据,因此您可以使用 Log 来执行此操作:
Route::get('/api/load_state', function() {
\Log::info(app('request')->all());
});
并跟踪日志
tail -f storage/logs/laravel.log
所以如果你点击
http://domain.dev/api/load_state?what=1
你应该看看
要将 json 对象返回给客户端,您可以这样做
Route::get('/api/load_state', function(Request $request) {
return response()->json(
User::find($request->get('user_id'))
);
});