路线不在Codeigniter中工作

时间:2013-05-14 19:08:42

标签: php codeigniter routing

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

非常感谢任何帮助。我一直在寻找几个小时而没有运气。

3 个答案:

答案 0 :(得分:0)

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

$data = array();

请在纠正后告诉我们您是否有错误。

答案 1 :(得分:0)

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

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

您的用户控制器应该能够正确查看URL中的传入参数。

答案 2 :(得分:0)

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

$return_array = [];

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

感谢大家的帮助。