2013-10-26 33 views
1

我剛纔已經安裝了最後的1.7版本Fuelphp,並試圖不航線的發揮,但卡住了一點Fuelphp路由

做了什麼:

在「用戶空間」控制器

創建「特殊」的行動

public function action_special($a = 'empty') 
{ 
    var_dump($a); 
    die(); 
} 

和路由它

'test(/:any)?' => 'userspace/special/$1' 

但問題是,如果本地主機/測試返回

string(5) "empty" 

所以本地主機/測試/ 1本地主機/測試/ QWERTY返回

string(0) "" 

但完整路徑本地主機/用戶空間/特殊/ QWERTY返回

string(6) "qwerty" 

所以不知何故,我們的「特殊」方法不能從路由中獲取參數。

回答

1

因爲我們使用的是正則表達式,所以路線很強大,但有時會讓人困惑。正則表達式應該是這樣的:

'something(/(:any))?' => 'something/index/$2', 

的(組)被捕獲,但:任何本身不是捕獲,你需要一個額外的(組),如上面的例子。因爲它是第二組,我們會在路線轉換中加入$2

+0

您的示例工作正常,但爲何在官方文檔(http://fuelphp.com/docs/general/routing.html)中有如 **'blog /(:any)'的示例** => **'blog/entry/$ 1'** – MyMomSaysIamSpecial

+0

因爲你想要可選的'/'你需要2個組,在我的例子中有兩個,文檔中有一個組,所以這是正確的。你能接受我的答案嗎? :) –

+0

Ofcourse我只是想得到正確的結束,非常感謝你:) – MyMomSaysIamSpecial