【问题标题】:Codeigniter with subfolders and uri segments带有子文件夹和 uri 段的 Codeigniter
【发布时间】:2011-12-25 01:51:40
【问题描述】:

我有一个名为:订单的网站。

在控制器文件夹中,我有一个名为:manage 的子文件夹。

在那里我有一个控制器叫做:editOrder

在 editOrder 控制器中,我有一个索引函数,它以 $id 作为参数。

在我的一个表单中,我有一个链接:editOrder/1

在我的路线文件中,我有这个代码:$route['editOrder'] = 'manage/editOrder'; 该链接给出了未找到的错误页面。

我尝试手动转到该页面,如下所示:http://localhost/orders/editOrder/1 找不到页面

我试过这样:

在我的路线文件中:

$route['editOrder/(:num)'] = "manage/editOrder/$1";

找不到页面

我已将配置文件更改为:

$config['uri_protocol'] = 'PATH_INFO';

$config['enable_query_strings'] = TRUE;

并尝试过这种方式:

http://localhost/orders/?c=editOrder&m=index&id=1

这会将我带到主页。

如何将 id 段传递给 editOrder 控制器????

啊哈哈哈哈哈哈哈

我该如何称呼这个控制器????

【问题讨论】:

  • 你能详细说说你有什么 url 以及应该如何更改/路由它吗?
  • 您的任何 SEF 网址都有效吗?如果不是,它可能是您的 htaccess 文件。

标签: codeigniter uri segments


【解决方案1】:

确保:

  1. 您的自定义路由位于 2 个默认路由之后。所以应该是:

    $route['default_controller'] = "defaultController";
    $route['404_override'] = '';
    $route['editOrder/(:num)'] = "manage/editOrder/index/$1";
    
  2. 您的控制器文件editOrder.php 有一个class editOrder extends CI_Controller 并且位于文件夹"controllers/manage/" 内;

  3. 你的editOrder控制器有一个function index($id) {}方法;

总而言之,如果你要调用一个方法,你需要指定它。在路由的情况下,这意味着您甚至必须指定 index() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2012-08-02
    • 2013-06-19
    • 2010-09-13
    • 2013-06-27
    • 2017-02-09
    相关资源
    最近更新 更多