0

我正在使用 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(内部服务器错误):服务器尝试完成请求时遇到了意外情况。

任何帮助将不胜感激。我一直在寻找几个小时现在没有运气。

4

3 回答 3

0

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

$data = array();

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

于 2013-05-14T19:13:09.537 回答
0

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

$return_array = [];

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

感谢大家的帮助。

于 2013-05-15T14:35:25.630 回答
0

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

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

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

于 2013-05-15T13:58:22.560 回答