【问题标题】:Routing codeigniter with unlimited params具有无限参数的路由codeigniter
【发布时间】:2016-01-13 17:47:39
【问题描述】:

我有一个控制器类别,其中包含操作索引和参数(参数将包含类别名称),这使我的 url http://localhost/categories/index/(category_name)

我希望我的网址是这样写的 http://localhost/(category_name)

但我也有子类别和更深层次的子类别。所以现在我的网址应该这样写 http://localhost/(category_name)/(sub_categories) 或更深层次 http://localhost/(category_name)/(sub_categories)/(sub_sub_categories)

有没有办法将我的网址路由到无限的操作参数。

下面的代码正在运行

$route['(.+)'] = 'categories/index/$1';

但它会影响所有控制器,并且似乎没有其他控制器在工作

我想知道有没有其他方法可以达到同样的效果。

谢谢!

【问题讨论】:

  • 为什么你需要这样做......?因为 get 方法有一些限制,比如它接受大约 2000 个字符不超过这个,所以你可以选择另一种方法来这样做,比如使用 post 方法,它有尽可能多的字段,因为你有不同的类别类型。在这里你可以有两个字段对于主类别和子类别,并使这些字段数组并存储您在各自字段中的尽可能多的项目
  • 好吧,假设我将其限制在 10 个级别并保持在 1000 个字符以下。那么可以路由吗?
  • 是的,这是可能的,但你知道这不是有效的解决方案,因为我们应该保持我们的 url 整洁干净,所以每当我们遇到大量数据时,我们应该选择 post 但它的全部由你决定
  • 好的,你能写代码吗!
  • 我会坚持只使用一个片段作为类别或子类别的名称。而且,您可以制作面包屑以跟随所有子类到根类别。研究 mysql 中的分层数据。

标签: php codeigniter


【解决方案1】:

您可以使用uri_to_assoc()。查看this页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多