如何将/posts/view/id替换为/posts/view/代码?
代码是数据库中的一个字段,包含使用mtrand()函数生成的10个随机数。
在PostsController中,我有查看帖子的功能:
public function view($id = null) {
$this->Post->id = $id;
$this->set('post', $this->Post->read());
}
现在我想使用code而不是id。
谢谢你的回答!
更新::
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));
}
非常感谢!
我使用了cakeHP
只是几次,但我认为你应该在cakeHP中看到路由,你应该更改url 的重写
我认为这将是一个类似/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());
}