我使用Slim Framework作为路由器,Twig作为模板引擎和Eloquent ORM来处理数据库。
我为这些库创建了引导程序。
<?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();
考虑到我有&#34;两个&#34;页面,&#34; /&#34;和&#34; / page / 1&#34;例如。
在每个页面中,我想要最多30个结果。
答案 0 :(得分:5)
从照明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 ..但是用于分页的自定义小部件。 (我是作者)
答案 1 :(得分:1)
composer.json
在需要部分添加此行:
"illuminate/pagination":"~5.0"
打开Ubuntu 14.04终端并转到项目目录。运行composer update
命令。它将下载您的分页库。
在模型文件中添加这两行
use Illuminate\Pagination;
use Illuminate\Pagination\Paginator;
在您的控制器中放置此代码,您将获得分页数据。
$data = Student::paginate(5);
为了在视图文件中获取分页链接。
$students->links();