无法通过laravel中的javascript调用控制器内的函数

时间:2017-09-09 15:52:29

标签: javascript jquery ajax laravel

我正在尝试使用jquery的数据表来创建一个包含数据库中已获取成员的表。 这是我的html和javascript代码:

<table id="workerTable" class="table-bordered table-hover" width="80%" cellspacing="0">
        <thead>
            <tr>
                <th>Id</th>
                <th>Name</th>
                <th>Role</th>
                <th>Dep_id</th>
                <th>Start_Date</th>
                <th>Updated</th>
            </tr>
        </thead>
    </table>

    <script type="text/javascript">
        $(document).ready(function() {
            $('#workerTable').DataTable( {
                "processing": true,
                "serverSide": true,
                "ajax": {{ URL::route('workerData') }}
            } );
        } );
    </script> 

我定义了这条路线:

Route::get('/workers/data' , 'WorkersController@fetch')->name('workerData');

WorkersController中的函数fetch()就是这样:

public function fetch()
    {
        $workers = Worker::all();
        echo json_encode($workers);
    }

我是laravel的新手,我想我不太了解它。是对此行的调用

  

“ajax”:{{URL :: route('workerData')}}

使路由调用WorkersController的fetch函数?

1 个答案:

答案 0 :(得分:1)

如果您尚未使用此软件包,则应使用此软件包:https://github.com/yajra/laravel-datatables

然后更换
"ajax": {{ URL::route('workerData') }}
通过
"ajax": {{ route('workerData') }}

这是对你的功能的修正

use App\Worker;
use Yajra\Datatables\Datatables;

// ...

public function fetch()
{
    $workers = Worker::all();

    return Datatables::of($workers)->make(true);
}