【问题标题】:calling paginate function of laravel on a array?在数组上调用 laravel 的分页函数?
【发布时间】:2017-03-14 15:01:19
【问题描述】:

这是我的控制器功能,我在其中对结果进行分页

 public function showallUsers() {

    $user = User::getUsers()->simplePaginate(5);
    return view('sellerTable', compact('user'));
}

我在我的模型中使用 Eloquent 查询从数据库中获取数据,这是我在 User 模型中的 getUser 方法。

 protected static function getUsers() {
    $data = User::where('role', '=', 'seller')
                    ->where('archive', '=', 0)->get(['id', 'user_name', 'first_name', 'last_name', 'phone_no', 'gender', 'facebook_id', 'gmail_id', 'email', 'braintree_customer_id', 'role']);
    return (!empty($data)) ? $data->toArray() : array();
}

当我使用我的控制器功能时,会出现以下错误

   Call to a member function simplePaginate() on array

它即将到来,因为我将 Model User 中的一个数组返回给 UserController 。 Laravel 不允许我在数组上调用 simplePaginate 函数,有什么想法可以在数组上调用 laravel Paginator 吗?

【问题讨论】:

    标签: php arrays pagination


    【解决方案1】:

    您将集合设置为数组并尝试使用用于集合而不是数组的 simplePaginage 方法。

    在转换为数组之前在模型方法中使用simplePaginate

    protected static function getUsers() {
        $data = User::where('role', '=', 'seller')
                        ->where('archive', '=', 0)->get(['id', 'user_name', 'first_name', 'last_name', 'phone_no', 'gender', 'facebook_id', 'gmail_id', 'email', 'braintree_customer_id', 'role']);
        $data = $data->simplePaginate(5);
        return (!empty($data)) ? $data->toArray() : array();
    }
    

    并像这样在控制器中使用

    $user = User::getUsers();
    

    【讨论】:

    • 现在它工作得很好,但在我看来,links() 或 render 不能正常工作,请在这种情况下提出建议。
    • @user7597883 :您可以提出另一个完整详细的问题,因为这里没有详细信息包含在您当前关于视图问题的问题中。
    • 又报错simplePaginate不存在
    【解决方案2】:

    为什么需要返回数组而不是集合。

    像这样改变你的功能

    protected static function getUsers() {
        $data = User::where('role', '=', 'seller')
                        ->where('archive', '=', 0)->get(['id', 'user_name', 'first_name', 'last_name', 'phone_no', 'gender', 'facebook_id', 'gmail_id', 'email', 'braintree_customer_id', 'role']);
        return $data;
    }
    

    【讨论】:

    • 我必须返回一个数组,因为我在视图中的逻辑取决于数组
    猜你喜欢
    • 1970-01-01
    • 2020-02-27
    • 2019-01-22
    • 1970-01-01
    • 2022-01-22
    • 2017-05-22
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多