[Codeigniter-users] 親ディレクトリにサブディレクトリと同名のコントローラが存在する場合でも、サブディレクトリ内のコントローラを使いたい。

Back to archive index

Belial philo****@gmail*****
2009年 12月 8日 (火) 18:04:57 JST


はじめまして、柴田と申します。

コントローラについて悩んでおり、良い方法があれば教えて頂ければと思い投稿しました。

説明が下手で申し訳無いのですが、現在管理画面を作成しており、一部機能のコントローラを
サブディレクトリに配置したいと考えています。
例えば、以下のようにコントローラを配置し

controller/
  -admin.php
  + admin/
    -user.php


管理画面のURLが http://example.com/admin
で、admin.php というコントローラが起動しメニューの表示などを行い、
ユーザの追加処理は http://example.com/admin/user/insert
で、adminフォルダにあるuser.php というコントローラを起動したいのですが、CIで普通に
http://example.com/admin/user/insertにアクセスすると、
admin.phpのuserメソッドが実行されます。


adminフォルダを別の名前にし、ルーティングを行うしか方法を考えたのですが、
URLとディレクトリ構成が一致している方が望ましいため、上記の形で出来る方法を
さがしております。

一応無理矢理な方法として、以下のようなメソッドをadmin.phpに追加してみましたが、
良い方法とは思えません。

    function user($arg = "",$arg2=""){
        include(APPPATH.'controllers/admin/user.php');
        $user = new User();
        if(method_exists($user,$arg)){
            $user->$arg($arg2);
        }
        else{
            $user->index();
        }
    }

宜しければお知恵をお貸し下さい。
よろしくお願いします。




Codeigniter-users メーリングリストの案内
Back to archive index