2013-01-10 79 views
0

我已經傾倒了文檔,但我似乎無法找到如何將URI路由到模塊。如何路由到模塊?

我的模塊目前包含一個使用正確目錄結構(目前大量空目錄)的控制器。我的控制器在modules/module_name/classes/controller之內,我的路由文件在modules/module_name/config/routes.php之內。

我試圖在這兩個/app/config/routes.phpmodules/module_name/config/routes.php如下:

<?php 
return array(
    '_root_' => 'md5_encrypt/index', // The default route 

    'tools/geek/md5_encrypt' => array('md5_encrypt'), 
); 

控制器看起來像以下(但我不認爲這是相關的):

<?php 

/** 
* MD5 Encrypt Controller. 
* 
* Online tool to encrypt a string using MD5 
* 
* @package app 
* @extends Controller 
*/ 

namespace Md5_encrypt; 

class Controller_Md5_Encrypt extends Controller_Template 
{ 

    /** 
    * The tool 
    * 
    * @access public 
    * @return Response 
    */ 
    public function action_index() 
    { 
     $data = array(); 
     $this->template->tab = 'geek'; 
     $this->template->title = 'MD5 Encrypt Tool'; 
     $this->template->content = View::forge('welcome/index', $data);  
    } 
} 

回答

1

你不能在名稱空間名稱中有下劃線。控制器名稱相同。

當查找文件時,自動加載器會將下劃線轉換爲目錄分隔符。

+0

謝謝,但這並沒有解決它。我想可能會有錯誤的路線工作 – Mike

0

首先,你應該設置你的應用程序模塊的路徑在app /配置/ config.php文件

'module_paths' => array(
    APPPATH.'modules'.DS, // path to application modules 
) 

在app /配置/ routes.php文件

'tools/geek/md5_encrypt' => 'md5_encrypt(module_name)/md5_encrypt(controller)', 

但二集路由,因爲您正在使用下劃線作爲控制器的名稱class Controller_Md5_Encrypt extends Controller_Template,它導致了一個新的路徑。

/modules/md5_encrypt/classes/controller/md5/encrypt.php 

下劃線(_)在你的控制器的名字自動加載http://fuelphp.com/docs/general/coding_standards.html#classes

/modules/md5_encrypt/classes/controller/md5_encrypt.php文件沒有自動加載過程中發現的過程中轉換成目錄分隔符。