Laravel分页报错:Method append不存在问题求助
解决Laravel分页中
Method append does not exist的问题 嘿,圣诞假期刚过,脑子有点“重启延迟”太正常了,我来帮你快速搞定这个问题!
问题根源
你报错的核心原因是方法名写错了:Laravel分页器(也就是paginate()返回的LengthAwarePaginator实例)提供的追加查询参数的方法是**appends()(复数形式)**,而不是append()。append()是普通集合(Collection)的方法,分页实例并不具备这个方法,所以才会抛出“方法不存在”的异常。
修正后的代码
把你的视图代码改成下面这样就行:
{{ $portalEntries->appends(Input::except('page'))->links() }}
另外,更推荐你和getEntries方法里的风格保持一致,用request()辅助函数代替Input facade(Laravel新版本更推荐这种写法):
{{ $portalEntries->appends(request()->except('page'))->links() }}
为什么这样能解决?
appends()方法的作用就是把指定的查询参数附加到分页链接的URL中,这样你翻页的时候,搜索关键词、筛选条件这些参数就不会丢失,完全匹配你当前的需求。
额外小提示
你的getEntries方法逻辑是没问题的,paginate()确实会返回正确的分页实例,只要把方法名从单数的append改成复数的appends,问题就解决啦~
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

