【问题标题】:Call to undefined method appends()调用未定义的方法 appends()
【发布时间】:2018-07-11 21:15:30
【问题描述】:

我为 db 表创建了一个过滤器,但过滤器只适用于第一页

我在控制器中尝试这段代码

    public function index(Request $request)
{
    $user=User::orderBy('created_at', 'ASC');
    if($request->get('search'))
    {
        if ($request->get('type')) {
            $user->where('type', $request->get('type'));
        }
        if ($request->get('id')) {
            $user->where('id', (integer)$request->get('id'));
        }
        if ($request->get('first_name')) {
            $user->where('first_name', $request->get('first_name'));
        }
        if ($request->get('email')) {
            $user->where('email', $request->get('email'));
        }
    }


    $users = $user->paginate(20);
    $user->appends(['search' => $request->get('search')]);
    return view('admin.user.index', compact('users'));
}

但我得到了这个错误

Call to undefined method Illuminate\Database\Query\Builder::appends()

如何修复此错误或如何使过滤器适用于所有页面?

【问题讨论】:

  • $user->appends(['search' => $request->get('search')]);
  • 我认为 laravel 中没有 appends() 函数
  • appends方法吗?
  • 你在$user->appends(['search' => $request->get('search')]);这里尝试什么?
  • stackoverflow.com/questions/39326206/…我看到这个例子并尝试一下

标签: php database laravel-5 laravel-5.4 laravel-5.5


【解决方案1】:

如我所见,您已使用以下行并对用户中的用户数据进行分页

$users = $user->paginate(20);

所以你需要使用 users 变量而不是 user

$users->appends(['search' => $request->get('search')]);

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 2017-05-03
    • 2012-07-27
    • 2015-05-12
    • 2019-10-25
    • 2013-10-23
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多