我正在尝试使用Slim 2 Framework对博客文章进行分页,但是我对如何在其余框架中传递参数感到困惑。
我们如何参加localhost/blog.php?page=2
Slim 2?
您确实可以像localhost/blog.php?page=2
在Slim中那样使用URL ,但是它违反了路由系统的目的。理想的方法是完全使用路由进行路由,例如/blog/2
。
但是,您也可以按照自己的方式进行操作。设置一条路径/blog
,然后$_GET['page']
在控制器功能内读取。不要忘记将其强制转换为int
,因此输入是安全的。isset()
还要始终使用来检查参数是否存在,以防止不存在索引通知。
顺便说一句,我注意到此代码有问题:
$page = $request->get('page');
// Get the current page if not set to page 1
$currentPage = isset($page) ? $page : 1;
if(!is_numeric($currentPage)) {
$app->notFound();
}
你用过isset()
这里,这将不利于-$page
将始终在第一线后进行设置。这对于检查$_GET
超全局变量中是否存在条目是适当的,但是我们在这里不使用它。
另外,最好将条件添加到路由参数中,而不要手动检查它是否为数字。综合所有这些,您可以执行以下操作:
<?php
$app = new \Slim\Slim();
$app->get('/blog(/:page)', function() use ($app) {
$page = $request->get('page');
$maxPage = 4; // This would be done dynamically
if ($page < 1 || $page > $maxPage) {
$app->notFound();
}
// More code here...
})->conditions(array('page' => '\d+'));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句