2012-04-24 56 views

回答

1

首先,您將創建一個控制器讓說dateAction接受日期作爲輸入參數,並列出基於這些日子的文章。假設你在文章控制器中創建了dateAction。

所以使這個網址做的工作www.example.com/article/date/year/2012/month/06/day/24/title/abcdef

第一

但現在你想把它變成美麗的東西所以用Zend_Router

這樣做之後,你會喜歡在創建一個路由你引導

$route = new Zend_Controller_Router_Route_Regex(
    '(\d+)/(\d+)/(\d+)/([a-z0-9]+)', 
    array(
     'controller' => 'article', 
     'action' => 'date' 
    ), 
    array(
     1 => 'year', 
     2 =>'month', 
     3 => 'day', 
     4 =>'title' 
    ) 
); 

Zend_Controller_Front::getInstance->getRouter()->addRoute('article',$route); 

聯繫URL http://www.example.com/2012/6/24/blog-title將工作一樣 www.example.com/article/date/year/2012/month/06/day/24/title/abcdef

+1

謝謝你,解決它,我:) – 2012-04-24 04:49:20

+1

不要忘了接受的答案:)哥們 – 2012-04-24 05:10:44

-1

你想要創建的東西通常稱爲slu。。我沒有意識到任何內置於Zend框架中的用於生成slu,的東西,因此您需要自行生成一個。這是一個非常簡單的方法來生成一個slu。。

$slug = preg_replace("/[^a-zA-Z0-9 ]/", "", $title); 
$slug = str_replace(" ", "-", $slug); 

爲了使這個更健壯,你應該檢查看看你生成的slug是否已經存在於數據庫中。如果是這樣,你可以自動添加一個數字到最後。例如,如果「this-blog-post」已經存在,請嘗試「this-blog-post-1」。

除了產生一個slu,外,您還需要遵循zerkms的註釋,並在您的Zend配置中添加一條路線,以便將該slu pass傳遞給您的控制器。