0

私は問題があります。「_remap」関数を使用して、CI のデフォルトのメソッド呼び出しをオーバーライドしました。オーバーライドされたメソッド (uri の 2 番目のセグメント) である 1 つのパラメーターを渡すと、すべて正常に機能します。ただし、ユーザー ガイドの指示に従って、以下の方法で URL の追加セグメントを取得しようとすると、$params 配列が空になりますか? main_view の $a 変数で var ダンプを使用しましたが、uri の 3 番目のセグメントが存在する場合でも、常に配列が空であることを示しています。

CI ユーザー ガイドには、「メソッド名の後の余分なセグメントは、オプションの 2 番目のパラメーターとして _remap() に渡される」と記載されています。(http://codeigniter.com/user_guide/general/controllers.html) しかし、そうではないようです。私が間違っているかもしれないことを誰かが知っていますか?

class Services extends Controller {
 var $group = 'services';
function Services()
{
    parent::Controller();
    $this->load->helper('url');
}

public function _remap($subPage, $params = array()){

    $pageData = $this->page_builder->buildPage($this->group,$subPage);
    if($subPage != 'index'){ $pageData['thisPage'] = $this->group .'/' . $subPage; }
    else{ $pageData['thisPage'] = $this->group; }
    $pageData['a'] = $params;
    $this->load->view('main_view', $pageData);
}

}

ありがとう。

4

1 に答える 1

1

私も同様の問題を抱えていたので、私のために働いた微調整を少ししました:

$segs = $this->uri->segment_array();
        $params=array_slice($segs, array_search($method, $segs));
于 2011-07-21T10:46:54.600 に答える