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

アーカイブの一覧に戻る

Kenji Suzuki kenji****@gmail*****
2009年 12月 8日 (火) 18:34:29 JST


Kenji です。


On Tue, 8 Dec 2009 18:04:57 +0900
Belial <philo****@gmail*****> wrote:

> はじめまして、柴田と申します。
> 
> コントローラについて悩んでおり、良い方法があれば教えて頂ければと思い投稿しました。
> 
> 説明が下手で申し訳無いのですが、現在管理画面を作成しており、一部機能のコントローラを
> サブディレクトリに配置したいと考えています。
> 例えば、以下のようにコントローラを配置し
> 
> 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メソッドが実行されます。

ちょっと、要求と違うかもしれませんが、

controller/admin/
             index.php
             user.php

として、http://example.com/admin で index.php が実行される
ようにする、だとどうでしょう?


// Kenji


> 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 mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
アーカイブの一覧に戻る