我正在使用基於URL的語言,並且我有一個頁面,其中包含傳入參數的URL。重定向傳入參數 - CakePHP
我不喜歡URL中的查詢字符串('?x = y')或名爲params('x:y'),所以我用http:// localhost/cakeapp/us/controller/action/param1 /參數2 /參數3
在我AppController的(例如用戶請求,我檢查,如果沒有語言被定義URL是否有語言定義的的http://本地主機/ cakeapp /控制器/動作/參數1 /參數2/param3),那麼我想簡單地將用戶重定向到具有相同參數的語言定義的URL。
在短: 我想重定向:
的http://本地主機/ cakeapp /控制器/動作/參數1 /參數2 /參數3
到
的http:// localhost/cakeapp/us/controller/action/param1/param2/param3
我使用;
$這 - >重定向(
路由器:: URL(陣列( '語言'=> $這 - >會話級>讀( 'Config.language'), '基地'= > false))
);
但它重定向用戶的http://本地主機/ cakeapp /美國/控制器/動作不帶參數。
有沒有一種方法可以使用Router :: url與傳入的$ this-> passedArgs變量來構建url。
看起來好,但我想知道爲什麼它會重定向到正確的控制器和操作,即使我沒有將它們傳遞給重定向方法?但我必須通過參數? –
我不知道有多少參數收入。那麼我怎麼能通過params重定向方法?他們在$ this-> passedArgs中。我無法將數組傳遞給重定向方法(它需要params爲字符串),如果我使用_implode(「/」,$ this-> passedArgs)_,它會將URL轉換爲%2F的(編碼)。 –