【问题标题】:Eloquent pagination not working with Slim 3 framework雄辩的分页不适用于 Slim 3 框架
【发布时间】:2018-03-01 21:59:54
【问题描述】:

我已经基于 Alex 的 Gareet “Authentication with Slim 3”课程构建了一个 costom mvc 系统。如果我做类似 $users = User::paginate(10);我得到了我所期望的。当我尝试使用 $users->links(); 呈现分页链接时,问题就来了或 $users->render();我得到了休闲错误:

类型:错误消息:在空文件上调用成员函数 make() 文件:C:\Users\Andy\Google_Drive\wamp\www\proline\new_admin\vendor\illuminate\pagination\LengthAwarePaginator.php 行:90

经过广泛的 Google 搜索后,我发现我不是唯一遇到此问题的人,但我找不到任何人提供明确的解决方案,除了创建我自己的渲染功能,如果可以的话,我真的想避免,所以我开始对 eloquent 库进行逆向工程,据我所知,问题接缝是 Illuminate\Support\ServiceProvider\PaginationServiceProvider 类,它具有方法“boot”和“register”,这些方法似乎对分页设置负责视图,但整个班级并没有被取代。为了测试这一点,我在 boot 和 register 方法中做了一个包含字符串的 die 语句,没有任何改变,我试图“新建”一个 PaginationServiceProvider 类的实例,我收到一个新错误,指出父类的构造函数"ServiceProvider" 期望一个新的 \Illuminate\Contracts\Foundation\Application 作为他的参数。我不知道哪个类实现了这个合同。然后我想我需要用 slim 注册这个类作为服务,我已经尝试了用 slim 注册服务的标准方法

$container['esp'] = function ($container) use($capsule) { return new Illuminatee\Events\EventServiceProvider($container); };

$container['dsp'] = function ($container) use($capsule) { return new Illuminatee\Database\DatabaseServiceProvider($container); };

女巫什么也没做。

我迷路了,急需帮助!

【问题讨论】:

    标签: php pagination eloquent slim


    【解决方案1】:

    如果你还在苦苦挣扎,答案就在这里: https://codecourse.com/watch/slim-3-pagination

    基本上你要composer require illuminate/pagination,然后建立一个ViewFactory类,实现LengthAwarePaginator使用的make()方法,然后全局注册:

    ```php

    \Illuminate\Pagination\LengthAwarePaginator::viewFactoryResolver(function () {
                $paths = [
                    config()->get('app.settings.paths.landers'),
                    config()->get('app.settings.paths.views')
                ];
    
                $settings = [
                    'cache' => config()->get('app.settings.paths.cache.views'),
                    'debug' => config()->get('app.debug') // this also auto reloads views cache if set to true
                ];
                return new \Klever\Views\ViewFactory($paths, $settings);
            });
    
            \Illuminate\Pagination\LengthAwarePaginator::defaultView('partials/pagination.twig');
    
            \Illuminate\Pagination\Paginator::currentPathResolver(function () {
                return isset($_SERVER['REQUEST_URI']) ? strtok($_SERVER['REQUEST_URI'], '?') : '/';
            });
    
            \Illuminate\Pagination\Paginator::currentPageResolver(function () {
                return $_GET['page'] ?? 1;
            });
    

    ```

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-19
      • 2018-01-05
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 2015-03-31
      • 2023-02-02
      相关资源
      最近更新 更多