2

我有一个名为 Posts 的模型,其中包含一个名为 slug 的字段。我想创建一个路由功能来基本上做到这一点:www.mysite.com/slug。所以,我创建了一个在 routes.php 文件中使用的 Slug 类,看起来像这样,但它不像我想要的那样工作:

class SlugRoute extends CakeRoute {

   function match($url) 
   {
        App::import('Model', 'Post');
        $Post = new Post();
        $Post->find('first', array('conditions' => array('Post.slug' == $url)));
        $id = $Post['id'];
        return $id;
   }
}

这是我在 routes.php 文件中的代码行:

Router::connect('/:slug', array('controller' => 'posts', 'action' => 'view'), array('routeClass' => 'SlugRoute'));

我要做的就是在我的帖子上执行搜索,以将 URL 中的输入 slug 与我数据库中的内容匹配,然后返回 ID 并自动链接到该 ID。

我究竟做错了什么?提前致谢!!

4

2 回答 2

0

我发现这个示例与您正在做的事情完全相同,但使用的是parse方法而不是match方法。看看: http: //mark-story.com/posts/view/using-custom-route-classes-in-cakephp

于 2011-03-14T07:35:38.743 回答
0

尝试这个

$Post = new Post();
    $data = $Post->find('first', array('conditions' => array('Post.slug' => $url)));
    $id = $data['Post']['id'];
于 2011-03-14T07:35:41.850 回答