簡體   English   中英

如何在zend框架中做漂亮的url?

[英]how to do pretty url in zend framework?

我想知道如何使用zend framework做漂亮的URL?

一些背景:

我現在的網址是: www.website.com/profile/43

數據庫結構為:

id   userid    name
1    43        John
..   ...       ...

我的路由器是:

$router->addRoute('getUserid',
            new Zend_Controller_Router_Route(
                    '/profile/:id',
                    array(
                            'module' => 'profile',
                            'controller' => 'social',
                            'action' => 'index'

                    )
            )
    );

顯然,我希望該網址為: www.website.com/profile/John

從研究的角度來看,我可以用路由器做很多事情,添加正則表達式等,但是在我的情況下,如何替換id卻一無所獲。

我需要執行查詢以查找名稱,並且我想在預調度中執行此操作並將結果用作默認變量,但是由於$front->getRequest()->getParams() ,所以我不知道id $front->getRequest()->getParams()不可用:

$name = // do query to find out the name;

$router->addRoute('getUserid',
            new Zend_Controller_Router_Route(
                    '/profile/:id',
                    array(
                            'id' => $name,
                            'module' => 'profile',
                            'controller' => 'social',
                            'action' => 'index'

                    )
            )
    );

也許我是從錯誤的角度出發。 有任何想法嗎?

謝謝。

比ZF特定問題更籠統。

您可以在此處執行的使URL美觀並保存高排名URL的操作在WordPress中實現,並且稱為“子彈”。 Slug只是帖子標題(只是空格被連字符等代替)。 但是很明顯,可能會有兩個標題相同的帖子(並且自動出現了slug)。 因此,如果新帖子的子彈已存在,則在末尾附加數字“ 1”。 如果它也存在,則將其附加“ 2”並重復直到得到唯一的東西。 顯然,您需要在表中為該段添加一個列。

因此,在您的情況下,名稱為John的第一個用戶的網址為www.website.com/profile/John 下一個名為John的用戶的URL為www.website.com/profile/John1 ,依此類推。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM