从CakePHP URL替换ID

时间:2012-01-07 11:56:39

标签: php cakephp cakephp-2.0

如何将/ posts / view / id 替换为/ posts / view / 代码

代码是数据库中的一个字段,包含使用mt_rand()函数生成的10个随机数。

在PostsController中我有查看帖子的功能:

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

现在我想使用代码而不是 id

感谢您的回答!

UPDATE :::

来自CakePHP Q& A的人解决了我的问题。

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

您的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));
}

非常感谢你!

2 个答案:

答案 0 :(得分:1)

我用过cakePHP

只是几次,但我认为你应该看看cakePHP中的路由,你应该改变url的重写

答案 1 :(得分:0)

我认为这将是一个像/ posts / view / id / code这样的网址。然后使用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());
}