雄性分页功能在Slim 3项目中使用枝条 [英] Eloquent paginate function in Slim 3 project using twig

查看:625
本文介绍了雄性分页功能在Slim 3项目中使用枝条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用枝条在Slim 3项目中使用分页功能?

How can I use paginate function from Eloquent in Slim 3 project using twig ?

这是我的控制器:

$posts = Sound::paginate(2);

$this->container->view->render($response, 'admin/sounds/index.twig', [
  'posts' => $posts
]);

这是视图:

{{ posts.links() }}

但是, t / p>

But it doesn't work as well as I expected :

Warning: call_user_func() expects parameter 1 to be a valid callback, no array or string given in **PATH_TO_PROJECT**\vendor\illuminate\pagination\AbstractPaginator.php on line 412

Fatal error: Call to a member function make() on null in **PATH_TO_PROJECT**\vendor\illuminate\pagination\LengthAwarePaginator.php on line 90

我有什么要做的是让它工作吗?

What I have to do to make it work ?

推荐答案

首先,你需要在你的项目中包含照明/分页(它不包括在照明/数据库):

First, you need to include illuminate/pagination in your project (it's not included with illuminate/database):

composer require illuminate/pagination

现在paginator需要知道如何解决当前页面。您应该确保在使用paginator之前完成此操作,我个人将其放在我设置依赖关系的地方:

Now paginator needs to know how to resolve current page. You should make sure this is done before using paginator, I personally put it where I'm setting up dependencies:

// $container is application's DIC container.
// Setup Paginator resolvers                                                                                                                                                                                       
Illuminate\Pagination\Paginator::currentPageResolver(function ($pageName = 'page') use ($container) {                                                                                                              

    $page = $container->request->getParam($pageName);                                                                                                                                                              

    if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) {                                                                                                                                    
        return $page;                                                                                                                                                                                              
    }                                                                                                                                                                                                              
    return 1;                                                                                                                                                                                                      
});

然后在您的树枝模板中,您可以输出分页链接。但是,请注意,分页生成一些HTML代码,需要写入输出 ,因此您需要告诉twig忽略转义链接:

Then in your twig template you can output pagination links. But please you should notice that paginator generates some HTML code which needs to be written to output as is so you'll need to tell twig to ignore escaping for links:

{{ posts.links | raw }}

这篇关于雄性分页功能在Slim 3项目中使用枝条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆