【问题标题】:CodeIgniter Custom Admin URI RoutesCodeIgniter 自定义管理员 URI 路由
【发布时间】:2010-01-18 14:57:19
【问题描述】:

更新:已解决!对于损坏的页面,我只是制作了一个管理控制器。现在每个模型都有一个功能:) 快乐的日子!

试图将我的管理功能与我的前端代码放在同一个控制器中。为此,我设置了一些自定义路由,以便可以通过以下方式访问管理员:

/admin/controller/id // instead of /controller/admin/id
/admin/controller/create // instead of /controller/create
/admin/controller/detail/id // instead of /controller/detail/id
/admin/controller/update/id // instead of /controller/update/id
/admin/controller/delete/id // instead of /controller/delete/id

我当前的路线非常适合细节、创建、更新、删除

$route['admin/(:any)/detail'] = "$1/detail"; // WORKS!!!
$route['admin/(:any)/detail/(:num)'] = "$1/detail/$2"; // WORKS!!!
$route['admin/(:any)/create'] = "$1/create"; // WORKS!!!
$route['admin/(:any)/create/(:num)'] = "$1/create/$2"; // WORKS!!!
$route['admin/(:any)/update'] = "$1/update"; // WORKS!!!
$route['admin/(:any)/update/(:num)'] = "$1/update/$2"; // WORKS!!!
$route['admin/(:any)/delete'] = "$1/delete"; // WORKS!!!
$route['admin/(:any)/delete/(:num)'] = "$1/delete/$2"; // WORKS!!!

但是我无法让管理页面使用 ID。我可以重新路由索引页面,但如果我无法传递 ID,将无法使用分页。

$route['admin/(:any)'] = "$1/admin"; // WORKS!!!
$route['admin/(:any)/(:num)'] = "$1/admin/$2"; // EPIC FAIL :( 404's

有人可以帮我解决这个问题,或者甚至建议应用程序结构的替代解决方案。

【问题讨论】:

    标签: php codeigniter routes


    【解决方案1】:

    确保您的正则表达式路由(包括带有 :num 和 :any 的路由)必须在 default_controller 路由之后。

    有关创建体面的管理面板的更多方法,请查看我在 creating an admin panel in CodeIgniter 上的文章。有三种不错的方法,本文解释了每种方法的优缺点。

    【讨论】:

    • :) 正是那篇文章解决了我的小问题。感谢您入住 ;)
    【解决方案2】:

    如果您的管理员很复杂并且您需要多个控制器,您可以简单地在您的应用程序/控制器文件夹中创建一个管理员文件夹。然后将您的管理控制器放入其中。

    所以 application/controllers/admin/login 会像 http://example.com/admin/login 一样工作

    【讨论】:

    • 嗨,这是我最初采用的方法,但我想在一个新项目中改变我的方法,并将 CRUD 功能保留在前端控制器中。所以我每个函数都有一个控制器。
    【解决方案3】:

    已经有公认答案的老问题,但我认为如果您在第一个 RegEx 中包含行尾锚点,您的设置会正常工作:

    $route['admin/(:any)/(:num)$'] = "$1/admin/$2"; // EPIC FAIL :( 404's
                              ^^^
    

    否则,您打算使用第二个 RegEx 捕获的 URL 将被您的第一个 RegEx 拦截。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 2023-02-12
      • 1970-01-01
      • 2014-12-06
      相关资源
      最近更新 更多