2013-01-06 127 views
8

我試圖使用路由的CI創建一個註冊表格代碼點火器可選參數

signup被重新路由到user/signup

但我的註冊功能可以包含paramater:function signup($type = 1)

我如何通過路由選擇這個選項?我試過$route['signup/?(:num)'] = 'user/signup/$1';,但是當去/signup我得到了404,只有/signup/1/的作品。

回答

14

表示這可能會宣佈兩條路線最清晰的方式:

$route['signup'] = "user/signup"; 
$route['signup/(:num)'] = "user/signup/$1"; 
+0

這工作正常,沒有想到的它,我試圖找出如何使它可選。謝謝! –

+0

編輯似乎不起作用,它似乎沒有發送參數 –

+0

謝謝,我想我更喜歡你的第一個解決方案,更容易閱讀/記住。 –

12

對於任何人在適當的時候讀這 - 我認爲答案應該是$route['signup/?(:num)?']這使得可選的數量爲好。我在其他方面有類似的問題。

+0

謝謝** Ukuser32 **,你的回答對我有用。 – Adnan

1

@ Ukuser32的答案的麻煩是它允許接受像signup69這樣的URI,在這種情況下可能是無害的,但在一般情況下是不可取的。只要把斜線與捕獲:NUM

$route['signup(/:num)?'] = "user/signup$1" 

請注意,如果您有多個可選部分,那麼你就需要將其嵌套....