在Laravel 5.2中使用DataTable时呈现视图的问题

时间:2016-03-07 06:37:38

标签: json laravel datatable render

我目前在Laravel 5.2中使用数据表,似乎我可以成功传递JSON数据但无法呈现视图。我真的不知道这里有什么不对。

这是我的数据控制器代码:

public function getIndex()
    {
        return view('event.report');
    }

    /**
     * Process datatables ajax request.
     *
     * @return \Illuminate\Http\JsonResponse
     */
    public function anyData(Request $request)
    {
        //$developers = Event::lists('developer','developer');
        $events = Event::select(['name','startDate','endDate','venue','developer','client','agency','allowance']);
        return \Datatables::of($events)
            ->filter(function ($query) use ($request) {
                if ($request->input('developer')) {
                    $query->where('developer', '=', "{$request->get('developer')}");
                }
            })
            ->make(true);
    }

以下是我在event.report中的观点:

@extends('layouts.app')

@section('content')
    <title>Attender Monthly Report Page</title>

    <div class="container">
        {{ Form::open(['url' => '/getreport','id'=>'search']) }}
        {{ Form::label('name', 'Select Developer Name:') }}
        {{ Form::select('developer', ['abc'=>'abc','def'=>'def','123'=>'123'],null,['id' => 'name']) }}
        {{ Form::submit('Search', ['class' => 'btn btn-primary']) }}
        {{ Form::close() }}

        <div class="search">
        <a  href="{{ url('/excel') }}" class="btn btn-primary"><span class="glyphicon glyphicon-save" aria-hidden="true"></span>  Export as Excel</a>
        <table class="table table-hover" id="result">
            <thead>
            <tr>
                <th>Event Name</th>
                <th>Start_Date</th>
                <th>End_Date</th>
                <th>Venue</th>
                <th>Attender</th>
                <th>Client</th>
                <th>Agency</th>
                <th>Allowance</th>

            </tr>
            </thead>
        </table>
            </div>
    </div>
@endsection
@push('scripts')
<script>
    var oTable =
            $('#result').DataTable({
                processing: true,
                serverSide: true,
                ajax: {
                    url: '{{ url('/getreport') }}',
                    data: function (d) {
                        d.name = $('select[name=name]').val();
                    }
                },

                columns: [
                    { data: 'name', name: 'name' },
                    { data: 'startDate', name: 'startDate' },
                    { data: 'endDate', name: 'endDate' },
                    { data: 'venue', name: 'venue' },
                    { data: 'developer', name: 'developer' },
                    { data: 'client', name: 'client' },
                    { data: 'agency', name: 'agency' },
                    { data: 'allowance', name: 'allowance' }
                ]
            });

    $('#search').on('submit', function(e) {
        oTable.draw();
        e.preventDefault();
    });
</script>
@endpush

这是我的路线:

Route::post('/getreport','DatatablesController@anyData');
Route::get('/viewreport','DatatablesController@getIndex');

这是我发布到/ getreport页面的JSON数据:

{
"draw": 0,
"recordsTotal": 4,
"recordsFiltered": 2,
"data": [
{
"name": "sfdwseef",
"startDate": "2016-02-03",
"endDate": "2016-02-23",
"venue": "dgegw",
"developer": "123",
"client": "dgsfdse",
"agency": "dgfsdg",
"allowance": "567"
},
{
"name": "dfgdrer3terr",
"startDate": "2016-03-07",
"endDate": "2016-03-08",
"venue": "fhghfghf",
"developer": "123",
"client": "fhgfhty",
"agency": "hrthyj",
"allowance": "43"
}
],
"queries": [
{
"query": "select count(*) as aggregate from (select '1' as `row_count` from `events`) count_row_table",
"bindings": [],
"time": 1
},
{
"query": "select count(*) as aggregate from (select '1' as `row_count` from `events` where `developer` = ?) count_row_table",
"bindings": [
"123"
],
"time": 0
},
{
"query": "select `name`, `startDate`, `endDate`, `venue`, `developer`, `client`, `agency`, `allowance` from `events` where `developer` = ?",
"bindings": [
"123"
],
"time": 0
}
],
"input": {
"_token": "oGq4pYPTXdGWf7LJf8YUb5nOX6gqbZWp1n5iZizg",
"developer": "123"
}
}

还有一件事,如果我希望我的下拉列表显示事件模型中开发人员列的选项,那么我的代码会如何改变?

0 个答案:

没有答案