我有一个名为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与我在数据库中的输入slug相匹配,然后返回ID并自动链接到该ID。
我做错了什么?在此先感谢!!
答案 0 :(得分:0)
我发现这个示例与您正在执行的操作完全相同,但使用parse
方法而不是match
方法。看看:http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp
答案 1 :(得分:0)
试试这个
$Post = new Post();
$data = $Post->find('first', array('conditions' => array('Post.slug' => $url)));
$id = $data['Post']['id'];