使用 CodeIgniter,我的代码中出现了奇怪的行为。我想要的是在我的数据库中列出一种人,当我输入给定人的 id 时,会出现一个页面,其中包含我们在数据库中获得的关于此人的所有信息。
只是一件简单的事情。我成功完成了新闻官方教程的事情,但它根本不起作用!
我用 viewPersonById 方法编写了一个名为 Person 的控制器继承类,就像这样:
class Person extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('Person_Model');
}
public function index()
{
}
public function viewPersonById($parId){
$data['person'] = $this->Person_Model->get($parId);
$data['title'] = 'Person information';
$this->load->view('templates/header', $data);
$this->load->view('people/view', $data);
$this->load->view('templates/footer');
}
我的 routes.php 是这样写的:
$route['people/(:any)'] = 'Person/viewPersonById/$1';
$route['news/create'] = 'news/create';
$route['news/modify/(:any)'] = 'news/modify/$1';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
$route['default_controller'] = 'pages/view';
当我在浏览器中输入http://127.0.0.1:8888/ci/index.php/people/1时,我得到的只是 404。我的代码有什么问题?我看不到它。
有任何想法吗 ?感谢并为我糟糕的英语感到抱歉。
编辑 :
好的,伙计们,我发现出了什么问题。我觉得自己是有史以来最大的笨蛋,因为我的文件名很奇怪,比如“person.controler.php”和“person.model.php”。您的控制器名称和您在 routes.php中输入的内容必须完全匹配。
所以我只需要将 person.controler.php 重命名为 person.php,将 person.model.php 重命名为 person_model.php,这样模型就可以在控制器中加载了。CI 使用文件的名称来查看它必须加载的内容。小心点。