繁体   English   中英

雄辩的分页不适用于Slim 3框架

[英]Eloquent pagination not working with Slim 3 framework

我已经基于Alex的Gareet“使用Slim 3进行身份验证”课程构建了Costom MVC系统。 如果我执行$ users = User :: paginate(10)之类的操作,它可以很好地处理雄辩的分页。 我完全回到了我的期望。 当我尝试使用$ users-> links();渲染出paginaton链接时,问题就来了。 或$ users-> render(); 我得到了休闲的错误:

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

经过广泛的Google搜索,我发现不是我唯一遇到此问题的人,但是我找不到提供清晰解决方案的人,除了创建自己的渲染功能外,我真的想避免,所以我继续为了对雄辩的库进行逆向工程,而我无法理解,则问题似乎是Illuminate \\ Support \\ ServiceProvider \\ PaginationServiceProvider类,该类具有方法“ boot”和“ register”,这似乎与分页视图的设置有关,但是整个班级都没有被实例化。 为了对此进行测试,我在启动和注册方法中都执行了一条die语句,其中包含一个字符串,并且未进行任何更改,我试图“更新” PaginationServiceProvider类的实例,但出现一个新错误,说父类的构造函数“ ServiceProvider”期望\\ Illuminate \\ Contracts \\ Foundation \\ Application的新实例为他的论点。 我不知道哪个班级执行此合同。 然后我以为我需要将Slim作为服务注册此类,并且我尝试了使用Slim注册服务的标准方法

$ container ['esp'] =函数($ container)use($ capsule){返回新的Illuminatee \\ Events \\ EventServiceProvider($ container); };

$ container ['dsp'] =函数($ container)use($ capsule){返回新的Illuminatee \\ Database \\ DatabaseServiceProvider($ container); };

女巫什么也没做。

我迫切需要一些帮助!

如果您仍在挣扎,答案在这里: 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;
        });

```

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM