2011-03-14 40 views
2

我有一個名爲哨子的字段稱爲職位的模型。我想創建一個路由功能,基本上可以做到這一點:www.mysite.com/slug。所以,我創建了一個在routes.php文件文件,它看起來像這樣用彈頭類,它不工作像我想:CakePHP:如何獲得匹配slug的行的ID?

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

這裏的代碼在我的路線行我有。 PHP文件:

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

所有我想要做的就是執行我的帖子搜索匹配與我有什麼在我的數據庫的URL輸入塞,然後返回ID,並自動鏈接到該ID。

我在做什麼錯?提前致謝!!

回答

0

試試這個

$Post = new Post(); 
    $data = $Post->find('first', array('conditions' => array('Post.slug' => $url))); 
    $id = $data['Post']['id']; 
+0

@shota,我也試過。這可能是正確的語法,但它也不起作用。 – Monochrome 2011-03-14 21:18:41

+0

啓用調試模式,您將看到生成的SQL。這將有助於弄清楚什麼是不對的。 – Headshota 2011-03-15 07:05:48

+0

你是否收到任何錯誤?將該SQL複製到你的phpmyadmin,看看它是否返回你需要的行 – Headshota 2011-03-15 07:27:40