【问题标题】:How to pass route parameter in datatable function in laravel如何在laravel的数据表函数中传递路由参数
【发布时间】:2018-06-05 06:47:10
【问题描述】:

这是我的第一篇文章,请原谅我。 我有一个名为 messdata.blade.php 的页面。我想为每个术语 id 更新此页面的数据表。

我的路线会是这样的

/admin/messdata/1,
/admin/messdata/2,
/admin/messdata/3.

这里 1,2,3 是术语 id。我想在数据表中显示messdata。

Screen shot of the datatable

但是虽然我更改了 id,但我的数据表仍然停留在第一个 id 上并且没有改变。

这是我的控制器代码。

    public $termid=1;
    public function showmess($id)
    {
        $this->termid=$id;
        return view('foradmin.mess.messdata');
    }

    public function showmessdata()
    {
        $users= DB::select('select * from messes where  termno = :termno', ['termno' => $this->termid]);

        return Datatables::of($users)
        ->addColumn('action', function ($user) {
            return "<a href='/admin/perterminfo/$user->id' class='btn btn-xs btn-primary'></i><span class=\"glyphicon glyphicon-folder-open\"></span> OPEN</a>";
        })
        ->make(true);
    }

这是我在 java-script 中的 data-table 代码。

    <script>
        var table;
        $(function() {
            table=$('#users-table').DataTable({
                processing: true,
                serverSide: true,
                ajax: '{!! route('admin.messdatashow') !!}',
                columns: [
                    {data:'id',name:'id',searchable: false},
                    {data: 'messno', name: 'messno' },
                    {data: 'startat', name: 'startat',searchable: false },
                    {data: 'finishat', name: 'finishat',searchable: false },
                    {data:'messfee',name:'messfee', searchable: false},
                    {data:'extrafee',name:'extrafee', searchable: false},
                    {data:'fine',name:'fine',searchable: false},
                    {data: 'action', name: 'action', orderable: false, searchable: false},
                ]
            });
        });
    </script>

这是我的路线

Route::get('admin/messdata/{id}','MessController@showmess')->name('admin.messdata');
Route::get('admin/messdatashow','MessController@showmessdata')->name('admin.messdatashow');

【问题讨论】:

  • 欢迎来到 StackOverflow。请看How to ask a good question
  • 添加您的代码。现在还不清楚你到底想做什么。
  • 先生,现在我已经给出了我的代码。请看一下。
  • 我不清楚你的要求,但我猜你正在做的事情是不应该做的。您正在从一条路线更改 id,然后尝试从另一条路线捕获与该 id 相关的数据!我认为这不是 php 的工作方式,当您点击第二条路线时,整个脚本都会运行,并且您已设置 $termid = 1,这应该始终显示 id 1 的数据并且永远不会更改。您必须在请求之间使 id 更改持久化才能正确显示数据。我认为您要做的事情可以通过第二条路线直接完成,只需向其中添加 id 参数即可。
  • 有几个术语。每个术语都有几个混乱。我想为每个术语 id 更新数据表。对于每个术语 id,数据表将显示不同的混乱数据。请参见上面添加的图片。

标签: javascript jquery laravel datatables


【解决方案1】:

您可以使用 $id = Request::segment(3) 从 url 获取 id

【讨论】:

  • 什么是segment(3),请解释一下?
  • 检索请求 URI 段 $segment = Request::segment(segment_number);
  • 公共函数 showmessdata() { $id = Request::segment(3); $users= DB::select('select * from messes where termno = :termno', ['termno' => $id]);
  • 我已经添加了这样的内容。但是表格显示“表格中没有可用数据”。
猜你喜欢
  • 2017-07-05
  • 2021-05-27
  • 2012-03-14
  • 1970-01-01
  • 2018-06-20
  • 2019-03-17
  • 1970-01-01
  • 2021-04-04
  • 2019-03-03
相关资源
最近更新 更多