2012-01-07 42 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