2015-05-19 29 views
0

我正在用一個看起來像這樣的路線fuelphp應用:正反轉控制器參數順序文件fuelphp

'lastname/:lastname/firstname/:firstname'=> '(@api)/mycontroller/my_method/$2/$1', 

然後,我有一個像這樣我的控制器上的方法:

public function get_my_method($firstname, $lastname); 

不幸的是,$firstname變量包含從路徑傳入的:lastname,而$lastname變量包含從路由傳入的:firstname

我試過從路由文件中切換到$2$1

我想保持端點url不變 - 我只想顛倒進入控制器方法的參數順序。

任何人都知道如何做到這一點?

+0

在方法本身中切換$ firstname和$ lastname? – Tpojka

+0

不能這樣做。我將$ lastname默認爲null,其他路由在調用控制器時沒有設置$ lastname字段。我可以檢查姓氏和交換,但我必須在每個控制器方法中執行此操作,獲取,發佈,放置和刪除。應用程序的其他部分也需要重構,比如一般不再需要應用的特徵就必須在每個類中使用可空的$姓氏實現共享的get_my_method – johncorser

回答

1

您需要將這些段封裝在括號中以捕獲它們,而不是使用命名參數。

'lastname/(:segment)/firstname/(:segment)' => '(@api)/mycontroller/my_method/$2/$1' 

另一種方法是使用$this->param('firstname')等,在你的控制,而不是讓他們作爲參數傳遞給動作傳遞給函數。

http://fuelphp.com/dev-docs/general/routing.html#/advanced