2012-01-07 46 views
1

如何使用/ posts/view/替换/ posts/view/id代码从CakePHP替换ID网址

代码是在包含使用mt_rand()函数生成的10张随机数的数据库的字段。

在PostsController我有这个功能查看帖子:

public function view($id = null) { 
    $this->Post->id = $id; 
    $this->set('post', $this->Post->read()); 
} 

现在我想用而不是代码ID

谢谢您的解答!

UPDATE :::

从CakePHP的Q &一个有人解决我的问题。

我会把代码放在这里,所以如果有人需要相同的解决方案,可以在这里找到它。

在routes.php文件添加以下代码:

Router::connect('/posts/view/:code', array('controller' => 'news', 'action' => 'view'), array('pass' => array('code'))); 

在控制器改变视图的方法是这样的:

public function view($code = null) { 
    $this->set('post', $this->Post->findByCode($code)); 
} 

太谢谢你了!

+0

为什么你需要触摸路由呢?要么你的问题措词非常奇怪,要么使用这些路线是矫枉过正的。 – Dave 2012-01-07 15:30:44

回答

1

我用CakePHP的

只是几次,但我想你应该会看到CakePHP的路由,你应该改变URL重写

0

我认为这将是一个类似于/ posts/view/id/code的URL。然后,使用ID,您从数据库中抓取代码:

public function view($id = null, $code = null) { 
    $this->Post->id = $id; 
    //..DO CAKEPHP QUERY TO GET CODE USING ID HERE. ASSIGN TO $code. 
    $this->Post->code = $code; 
    $this->set('post', $this->Post->read()); 
} 
+0

不,从/ posts/view/id到/ posts/view/code。 。更换用代码的URL的ID部分 – 2012-01-07 13:35:50