質問
私はただcodeigniterを学んでいますが、少し奇妙なことに出くわしたようです。 URIルーティング機能を使用していますが、再ルーティングされたURIのURIセグメントを取得する必要があります。
これはルートの1つです。
$route['content'] = "site/display/main template/content";
および http://lipsum.localhost/content
にアクセスすると、コントローラーがロードされますが、URIクラスを使用できません:
class Site extends Controller {
function display($template, $page) {
echo "display<br>";
$this->load->library('uri');
echo $this->uri->rsegment(1, 0)."<br>";
echo $this->uri->rsegment(2, 0)."<br>";
echo $this->uri->rsegment(3, 0)."<br>";
echo $this->uri->rsegment(4, 0)."<br>";
}
}
ページにアクセスすると、単に表示されます
display 0 0 0 0
基本的に、このコードはテンプレートをロードしてから $ page
をテンプレートに渡し、Webサイトのセクションをロードできるようにする必要があります。したがって、「コンテンツ」は「メインテンプレート」をテンプレートとして使用し、「コンテンツ」をロードするページとして「コンテンツ」に渡します。しかし、「/ products / whatever」などを渡すこともできるようにしたいので、URIセグメントを循環して完全な「パス」を取得したいと思います。ページへ。どうすればそれを機能させることができますか?そして、なぜ私が働いていないのですか?
解決
「メインテンプレート」のスペースを取り除いて、アンダースコアまたはキャメルケースを使用して「mainTemplate」にまとめます。あらゆる種類のルートやURLにあるスペースを最後に見たときのことは思い出せません。
他のヒント
これを行うには、カスタムルートを/app/config/routes.phpファイルに追加します。
$route['title-of-the-page'] = "<controller>/<method>";
所属していません StackOverflow