私のコードイグナイターアプリケーションのURLにジャーナルのIDをエンコードしようとしましたが、それをコントローラで取得しようとしました。私の最終目標は、私は私のjournalPage.phpでコードイニターコントローラーのインデックスメソッドにデータを送信するにはどうすればよいですか?
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Journal extends Controller {
public function index($journalId) {
$data['journalId'] = $journalId;
$this->view->load('journalPage', $data);
}
}
?>
を持って、ページhttp://mysite.com/journal/3
にアクセスし、自分のjournal.phpコントローラファイルでID 3.
とジャーナルの詳細を含むページにアクセスするために取得することです私は
This event has ID <?= $journalId ?>.
私のroutes.phpファイルにこのルールを書いています。
$route['journal/(:num)'] = 'journal/$1';
ここは、htmlパブリックフォルダ内の.htaccessファイルです。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
</IfModule>
しかし、私がmysite.com/journal/3に行くと、404エラーが発生します。どうして?
.htaccessファイルが設定されていますか?もしそうでなければ、インデックスページを通してサイトにアクセスする必要があります: 'mysite.com/index.php/journal/3' – rjz
私は.htaccessファイルを持っています。 URLにコード化されたデータのないコントローラ(およびそのメソッドがパラメータを受け入れない)が動作しています。また、 'mysite.com/journal/3'や' mysite.com/index.php/journal/3'も動作していません。興味深いことに、 'mysite.com/journal /'に行くことができます。しかし、表示されるテキストは、実際のイベントIDのない「This event has ID。」です。 –
routes.phpでルールを定義しましたか? – safarov