如何将/ 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));
}
非常感谢你!
答案 0 :(得分:1)
只是几次,但我认为你应该看看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());
}