質問

私はただ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>";
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top