php - Codeigniter 将参数传递给 Controller ​​索引

标签 php codeigniter

我正在使用 codeigniter 构建一个教程系统,并希望实现以下 URL 结构:

  • /tutorials --> 包含所有类别列表的介绍页面
  • /tutorials/{a category as string} --> 这将给出给定类别的教程列表,例如/教程/php
  • /tutorials/{a category as string}/{an ID}/{tutorial slug} --> 这将显示教程,例如/tutorials/php/123/how-to-use-functions
  • /tutorials/add --> 添加新教程的页面

问题是,当我想使用前两种类型的 URL 时,我需要将参数传递给 Controller ​​的索引函数。第一个参数是可选的类别,第二个是可选的教程 ID。我在发布之前做了一些研究,所以我发现我可以添加一条像 tutorials/(:any) 这样的路线,但问题是这条路线会通过 add 在使用最后一个 URL (/tutorials/add) 时也作为参数。

我有什么想法可以实现这一目标吗?

最佳答案

您的路由规则可以按以下顺序:

$route['tutorials/add'] = "tutorials/add"; //assuming you have an add() method
$route['tutorials/(:any)'] = "tutorials/index"; //this will comply with anything which is not tutorials/add

然后在 Controller 的 index() 方法中,您应该能够确定传递的是类别 ID 还是教程 ID!

关于php - Codeigniter 将参数传递给 Controller ​​索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074993/

相关文章:

php - Codeigniter 模型未插入值

php - 如何在 Codeigniter 中忽略 '|'

javascript - html提交表单ajax响应

php - 帮助在 PHP 中设置高级搜索参数的逻辑

php - 帮助将数据加载到文件中

php - PHP - MySQL 脚本非常慢

javascript - 通过 AJAX 在 HTML 中显示 PHP 表格

php - codeigniter 多个选择查询相互依赖

php - CentOS7上命令行运行php

php - Mysql Order by Error CI