我的问题与Yajra Datatables Package for Laravel deosnt work properly with laravel 5.2
非常相似我在Chrome上获得了无效的JSON响应,但我无法查看HTTP呼叫响应。
这是我的控制器
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Office;
use Datatables;
class OfficeController extends Controller
{
public function index()
{
return view('offices.index', ['page_title' => 'Jabatan']);
}
public function data()
{
$offices = Office::select(['id', 'title']);
return Datatables::of($offices)->make(true);
}
...
我的剧本
$(function() {
$('#offices-table').DataTable({
processing: true,
serverSide: true,
ajax: '{!! route('offices.data') !!}',
columns: [
{ data: 'id', name: 'id' },
{ data: 'title', name: 'title' }
]
});
});
答案 0 :(得分:0)
首先,你必须检查你的功能究竟返回了什么。所以我建议你像第一次那样修改它
public function data()
{
$offices = Office::select(['id', 'title']);
dd(Datatables::of($offices)->make(true));
}
然后在浏览器中转到针对此功能的URL,或使用检查器查看您到达那里的内容。我想这会帮助你弄清楚什么是错的。
如果显示预期结果,请尝试修改您的功能:
public function data()
{
$offices = Office::select(['id', 'title']);
return new JsonResponse(Datatables::of($offices)->make(true));
}
别忘了添加
use Illuminate\Http\JsonResponse;
在控制器类定义之前的语句。