gpt4 book ai didi

php - 使用 Slim Framework 和 Laravel 的 Eloquent ORM 进行分页

转载 作者:可可西里 更新时间:2023-10-31 22:44:03 25 4
gpt4 key购买 nike

我使用 Slim Framework 作为路由器,Twig 作为模板引擎和 Eloquent ORM 来处理数据库。

我为这些库创建了 Bootstrap 。

<?php

require_once 'vendor/autoload.php';

/**
* Laravel Eloquent ORM
*/
use Illuminate\Database\Capsule\Manager as Capsule;
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;

$database_capsule = new Capsule;

$database_capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'username',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);

$database_capsule->setEventDispatcher(new Dispatcher(new Container));

$database_capsule->setAsGlobal();

$database_capsule->bootEloquent();

/**
* Twig Template Engine
*/
Twig_Autoloader::register();

$twig_loader = new Twig_Loader_Filesystem('template');

$twig_engine = new Twig_Environment($twig_loader);

还有路线:

/**
* Slim Framework
*/
$application = new \Slim\Slim();

$application->get('/', function () use ($twig_engine) {

$foods = Capsule::table('foods')->get();

$index = $twig_engine->loadTemplate('index.html');

echo $index->render(array('foods' => $foods));

});

$application->get('/page/:number', function ($number) use ($twig_engine) {

$foods = Capsule::table('foods')->get();

$index = $twig_engine->loadTemplate('index.html');

echo $index->render(array('foods' => $foods));

});

$application->run();

我想要的是:如何对以下结果进行分页:

$foods = Capsule::table('foods')->get();

考虑到我有“两个”页面,例如“/”和“/page/1”。

在每个页面中,我希望最多有 30 个结果。

最佳答案

从 illuminate 4 开始你可以做这样的事情

$application->get('/page/:number', function ($number) use ($twig_engine) {

$foods = Capsule::table('foods')->skip(30*$number)->take(30)->get();
$index = $twig_engine->loadTemplate('index.html');

echo $index->render(array('foods' => $foods));

});

更好的解决方案是包含 Illuminate\Pagination 包并使其与

Capsule::table('foods')->paginate(5) 

但是我不知道如何在 laravel 之外引导分页类。

考虑看看 https://github.com/zofe/rapyd-framework它使用 Slim、Twig、Eloquent、Symfony Forms.. 但自定义小部件用于分页。(我是作者)

关于php - 使用 Slim Framework 和 Laravel 的 Eloquent ORM 进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19214481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com