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

  • / tutorials->简介页面,其中列出了所有类别
  • / tutorials / {一个类​​别为字符串}->这将给出给定类别的教程列表,例如/ tutorials / php
  • / tutorials / {类别为字符串} / {一个ID} / {tutorial slug}->这将显示该指南,例如/ tutorials / php / 123 /操作方法
  • / tutorials / add->页面添加新教程

  • 问题是,当我想使用前两种类型的URL时,需要将参数传递给 Controller ​​的索引函数。第一个参数是可选类别,第二个参数是可选教程ID。我在发布之前进行了一些研究,所以发现可以添加一个类似于tutorials/(:any)的路由,但是问题是,当使用最后一个URL(/ tutorials / add)时,该路由也会传递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!

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

    10-10 04:57