我正在使用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(内部服务器错误):出现意外情况 在服务器尝试完成请求时遇到。
非常感谢任何帮助。我一直在寻找几个小时而没有运气。
答案 0 :(得分:0)
您传递的$数据未初始化。可能你的错误500来自它。在log_message之前,键入以下语句:
$data = array();
请在纠正后告诉我们您是否有错误。
答案 1 :(得分:0)
我认为您的路由可能略有偏差。试试这个:
$route['user/profile'] = 'user/profile_view';
您的用户控制器应该能够正确查看URL中的传入参数。
答案 2 :(得分:0)
感谢您指出PHP错误日志的人。这是我的Model代码中的一个问题。我显然没有完全从一种语言转换到另一种语言,我放了......
$return_array = [];
...作为我的数组初始化。 PHP日志让我指出了正确的方向。
感谢大家的帮助。