私のコードイグナイターコントローラーには、オプションの引数を持つインデックス関数しかありません。引数が存在する場合はビューをロードし、そうでない場合は別のビューをロードします。この _remap 関数を使用します。
function _remap($method){
$param_offset = 2;
// Default to index
if ( ! method_exists($this, $method))
{
// We need one more param
$param_offset = 1;
$method = 'index';
}
// Since all we get is $method, load up everything else in the URI
$params = array_slice($this->uri->rsegment_array(), $param_offset);
// Call the determined method with all params
call_user_func_array(array($this, $method), $params);
}
問題は、インデックス関数の引数をチェックすると、値が常に 0 に等しいことです。これは、デフォルトとして設定した値です。