1

如果有人向我解释如何在 zend 中生成虚 url,那就太好了。我打算编写一个博客,我希望它的帖子具有http://www.example.com/2012/6/24 格式的链接。博客标题。我对 zend 很陌生。

4

2 回答 2

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);

现在 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 的内容,因此您需要自己生成一个。这是一个非常简单的生成 slug 的方法。

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

为了使其更健壮,您应该检查您生成的 slug 是否已存在于数据库中。如果是这样,您可以自动在末尾添加一个数字。例如,如果“this-blog-post”已经存在,请尝试“this-blog-post-1”。

除了生成 slug 之外,您还需要遵循 zerkms 的评论并在 Zend 配置中添加一个路由,该路由会将这个 slug 传递给您的控制器。

于 2012-04-24T03:06:09.597 回答