1

誰かが zend でバニティ URL を生成する方法を説明してくれたら素晴らしいと思います。 blog-title .Zend を始めたばかりの初心者です。

4

2 に答える 2

1

最初に、入力パラメーターとして日付を受け入れ、それらの日に基づいて記事を一覧表示する、たとえばdateActionというコントローラーを作成します。記事コントローラー内にdateActionを作成したとします。

だからこのURLに仕事をさせる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);

これで、URLhttp://www.example.com/2012/6/24/blog-titleは次のように機能します www.example.com/article/date/year/2012/month/06/day/24/title/abcdef

于 2012-04-24T04:13:09.530 に答える
-1

作成したいものは、スラッグと呼ばれることがよくあります。スラッグを生成するために Zend フレームワークに組み込まれているものは何も知らないので、自分でスラッグを生成する必要があります。これは、スラッグを生成するための非常に簡単な方法です。

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

これをより堅牢にするために、生成したスラッグがデータベースに既に存在するかどうかを確認する必要があります。その場合、末尾に番号を自動的に追加できます。たとえば、「this-blog-post」が既に存在する場合は、「this-blog-post-1」を試してください。

スラッグの生成に加えて、zerkms のコメントに従い、このスラッグをコントローラーに渡すルートを Zend 構成に追加する必要があります。

于 2012-04-24T03:06:09.597 に答える