2011-05-19 37 views
3

對於新的應用程序,我想使用URI來確定應該加載哪些內容。目前爲止沒有什麼特別的......但是我怎樣才能讓slug在其中進行斜線切割,並確保Zend Framework將它們視爲1個變量? ZF將所請求的URL以塊爲單位進行分割,其中每個部分都是2個鋸齒之間的字符串。現在我想讓1個變量中的所有部分都可以使用。使用Zend將1個變量中的多個網段放在一個變量中

例如:

 
/de/my/page 

de > language 
my/page > 1 variable 

任何想法?

+0

你能提供一個你想要實現的例子嗎? – Marcin 2011-05-19 11:39:15

+0

我添加了這個例子。 – koko 2011-05-19 11:47:29

+0

'explode('/','$ url,1);'possible 2 – Ascherer 2011-05-19 16:21:12

回答

1

的建議是最好的選擇,但如果你真的想保持你的斜線,您可以用Zend_Controller_Router_Route_Regex工作,以趕上你的參數,你只需要找到一個很好的正則表達式,一個簡單的例子:

$routetotry = new Zend_Controller_Router_Route_Regex('([^/]+)/(.*)', 
        array(1 => 'de', 'controller' => 'someController', 'action' => 'someAction'), 
        array(1 => 'lang',2=>'my_variable_with_slash'), 
        '%s/%s' 
); 

$router->addRoute('routetotry', $routetotry); 
0

用您選擇的其他值替換slu s中的斜槓。

例如連字符( - )或下劃線(_)。從哈日ķ

1

自定義路由器。最靈活的解決方案,但不是最簡單的解決方案:(