【问题标题】:Routes not working in Codeigniter路由在 Codeigniter 中不起作用
【发布时间】:2013-05-14 19:08:41
【问题描述】:

我正在使用 CodeIgniter 1.9 构建网站。

我希望http://myurl.com/index.php/user/profile/2 将我带到 ID 为 2 的用户的个人资料页面。

我的 routes.php 文件如下所示。

$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['user/profile/(:num)'] = 'user/profile_view/$1';

我的 user.php 文件如下所示。

class User extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->model('user_model');
    }

    function profile_view($id)
    {
            $data = array();
        log_message("info", "I am in the profile_view method of user.php.");

        $this->load->view("templates/header", $data);
        $this->load->view("templates/footer", $data);
    }
}

代码永远不会进入 log_message() 函数,它会抛出一个 500 错误,正是这样......

HTTP 错误 500(内部服务器错误):出现意外情况 在服务器尝试完成请求时遇到。

任何帮助将不胜感激。我已经找了几个小时没有运气了。

【问题讨论】:

  • apache/webserver 日志中的任何内容?你在用 htaccess 吗?
  • 完整性检查:未路由的 URL 是否有效? http://myurl.com/index.php/user/profile_view/2我怀疑这个问题是否与路由直接相关。
  • 不,未路由的 URL 不起作用。我假设这是一个路由问题,因为其他路由正在工作。代码可以正常进行路由(我在路由之前进行了 log_message 调用)。但是,它没有到达控制器。
  • 我在我的个人笔记本电脑上运行 Ubuntu 12.04,安装了标准的 apache、MySQL、PHP。我没有对 htaccess 做任何修改。我已将 CodeIgniter 代码放入 /var/www 文件夹,并通过转到“localhost/index.php 运行该站点
  • 确保错误报告正确开启(在 PHP.ini、index.php 等中)。 500 错误可能是因为 PHP 错误。还要检查您的错误日志。

标签: php codeigniter routing


【解决方案1】:

您传递的 $data 未初始化。可能您的错误 500 来自它。在 log_message 之前,输入以下语句:

$data = array();

如果您在更正后有错误,请告诉我们。

【讨论】:

  • 我非常怀疑就是这样,充其量它会触发 PHP 通知。 (但无论如何都是好点)
  • 是的,它仍然失败。我实际上是在设置 $data 但注释掉了除了让生活更容易调试的基本必需品之外的所有东西。接得好。我添加了“$data = array();”只是为了确定。
【解决方案2】:

我认为您的路由可能略有偏差。试试这个:

$route['user/profile'] = 'user/profile_view';

您的用户控制器应该能够很好地看到来自 URL 的传入参数。

【讨论】:

    【解决方案3】:

    感谢您指出 PHP 错误日志的人。这是我的模型代码中的一个问题。我显然还没有完全从一种语言转换到另一种语言,我已经把......

    $return_array = [];
    

    ... 作为我的数组初始化。 PHP 日志让我找到了正确的方向。

    感谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-07
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多