我最近开始使用 CodeIgniter,因为我正在寻找一个非常轻量级的框架,它似乎是首选。
我是整个 MVC 的新手,喜欢它,但被看似非常简单的东西所困。
我正在编写 CMS,需要一种方法来过滤、排序和分页结果。我习惯于使用查询字符串来做这件事,所以我会有一些类似的东西:
articles.php?order=title&sort=desc&filter=articletitle&page=5
我不知道如何在 CI 中执行此操作,所以我只是在配置中打开 EnableQueryStrings,它工作正常,但我感觉它可能不是最优雅的解决方案。
我想我可以
index.php/articles/index/order/title/sort/desc/filter/articletitle/page/5
但对我来说这似乎非常不灵活,例如如果我不需要排序怎么办,我如何确保我正在查看正确的 uri 段?
有什么想法吗?
最佳答案
您是否尝试过实现 _remap
函数?它将所有对 Controller 的查询重定向到该函数,允许您实现任意数量(或尽可能少)的查询。
然后你可以做这样的事情:
class Articles extends Controller
{
// Note: No need for a "order" or even an "index" function!
public function _remap()
{
$assoc = $this->uri->uri_to_assoc( 4 );
/* $assoc is now
array( "order"=>"title",
"sort"=>"desc",
"filter"=>"articletitle",
"page"=>5); */
}
}
关于php - 在 Codeigniter 中过滤、排序和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2428651/