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 は、ファイルの名前を使用して、何をロードする必要があるかを確認します。気をつけてください。