laravel中layui的table翻页不起作用问题的解决

本地测试是好的,部署的时候就发现,翻页不起作用了。但lay_num序号是可以变化的,查看api接口传递的数据,发现数据没有变化,加上page=2等翻页,也是不起作用,看来是url参数返回给后台,后台读取不了数据。

感谢这个文章:laravel 路由在nginx不生效解决(宝塔面板)_laravel nginx路由无法访问-CSDN博客

原因就是Nginx服务没有传递参数,配置如下: 

    location / {
    root /www/wwwroot/xxx/public;
    index index.php index.html index.htm default.php default.htm default.html;
    # try_files $uri $uri/ $uri.php /index.php;
    try_files $uri $uri/ /index.php?$query_string; #开启路由访问,laravel项目改为此条
    }

就是要加上?$query_string这个url变量,传递参数值,否则Nginx服务就不转发get方法参数了。post方法不受影响。

这样laravel后端输出的api就非常简单:

    public function users()
    {
        return User::paginate(10);
    }

就连request参数也不需要了,如果要自定义翻页,就需要自己计算offset:

public function users(Request $request)
{
        $curr_page = $request->input("page", 1);
        $limit = $request->input("limit", 10);
        $count = User::count();
        $offset = ($curr_page - 1) * $limit;
        // 确保 offset 不为负数
        if ($offset < 0) {
            $offset = 0;
        }

        $users = User::offset($offset)->limit($limit)->get()->toArray();
        return response([
            'code' => 0,
            'msg' => '',
            'count' => $count,
            'data' => $users
        ]);
}

如果没有传递code=0这个layui的table必须自带的参数,table就会接收不到数据,需要在table的options里添加一下:

        , parseData: function(res) {
          // console.log(res);
          //   var result;
          //   if (this.page.curr) {
          //     result = res.data.slice(this.limit * (this.page.curr - 1), this.limit * this.page.curr);
          //   } else {
          //     result = res.data.slice(0, this.limit);
          //   }
          return {
            "code": 0
              // , "msg": res.msg
            , "count": res.total
            , "data": res.data
          };
        }

 闹了半天,原来是Nginx服务器的配置问题。本地测试是正常的,部署到服务器就翻页出问题,翻不了页,应该想到是服务器配置的问题了……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

andux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值