php - 在 Codeigniter 中过滤、排序和分页

标签 php codeigniter content-management-system query-string

我最近开始使用 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/

相关文章:

javascript - ExpressionEngine cms 中的定位问题

php - 仅显示前 5 个结果

php - 当周数可用时,如何从 MYSQL 获取一周的 "start date"和 "end date"?

php - PHP 8 开发中的 Laravel

php - mysql将十进制时间转换为xx :xx format

javascript - 在 codeigniter 中,我通过 form_open 提交了一个表单,所有按钮都由我的 form_open ('Home/page' 链接)

php - Laravel belongsTo 在使用 'with' 时返回 null

php - 日期和当前时间之间的时差?

php - 如何在 Codeigniter 的查询生成器中使用 select

content-management-system - 使用 XSL 列出 Sitecore CMS 中项目的所有字段