Laravel 5.2 条件查询后分页点第 2 页空白问题,不知为何?求大神帮忙指导,谢谢!

学习后盾网陈华老师的laravel 5.2视频课程后,自己尝试着做一下后台,在一个列表中,按条件查询后分页遇到以下问题
1.采用paginate获取分页数据,控制器如下:


public function index(Request $request)
    {
        $keyword= empty($request->input('keyword'))?'':$request->input('keyword');
            $data = Users::where('nickname', 'like', '%' . $keyword . '%')
                ->orderBy('id', 'desc')
                ->paginate(5);
            $models = $data;
        return view('admin/users/index', compact('models','keyword'));
    }

2.模板中引用分页
列表上方是一个input 栏,旁边一按钮查询
中间是数据显示列表
最下方带参数分页


{!! $models->appends(['keyword'=>$keyword])->render() !!}

3.点查询后可以取到数值,鼠标放在分页2上面时,可以看到已带到传递过去的参数,点击后出现空白,也没报错,试了很久,不知道是什么原因?
file
file
有没有大神帮指导一下,谢谢了!

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

找到原因了,是链接的问题
资源路由定义默认的路径
admin/users
这个路径实际上就指向了
admin/users/index
所以未查询之前分页路径是
admin/users?keywrod=&page=2
查询之后,由于引入视图
admin/users/index
所以路径变成了
admin/users/index?keyword=t&page=2
由于使用资源路由,admin/users/index与路由配置不同,所以就变成空白了
我自己解决这个问题的土办法(大家别笑话我啊,我是小白,刚在学习)
新建一个方法userslist
查询时数据发送到这个方法当中


public function userlist(Request $request)
    {
        $keyword= empty($request->input('keyword'))?'':$request->input('keyword');
        $data = Users::where('name', 'like', '%' . $keyword . '%')
            ->orderBy('name', 'asc')
            ->paginate(5);
        return view('admin/users/userlist', compact('data','keyword'));
    }

原来的index就保持查询所有吧


  public function index()
    {
        $data = Users::orderBy('name', 'asc')->paginate(5);
        return view('admin/users/index', compact('data'));
    }

小白总结:
1、不够细心,一个小小的差别就带来了这么些问题。
2、规范很重要,有空还是要多看看大神的代码。
3、自己多动脑,遇到问题就找百度或者发论坛上是一种依赖。
当然,有一些摔倒的经验分享出来,给像我一样的小白少走一些弯路,多一些借鉴。

7年前 评论

我也遇到类似问题了,经你提醒发现确实是路由问题。感谢

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!