我有一个带URL的PostController:http://cakephp.local/posts/view/20 现在,我想重写它,例如:http://cakephp.local/posts/view/some_text_contents.html
with:some_text_contents是Post Model的标题字段(在表格中)。
那么,我该怎么办? 任何人都有这方面的经验,请给我一个帮助。非常感谢!!!
答案 0 :(得分:1)
要重写此类网址,您需要将标题作为视图方法的参数传递(如hizbul25所做),而不是记录ID。
请参阅此主题:CakePHP: Use post title as the slug for view method
例如,我建议使用名为slug的字段来保存没有空格,重音符和特殊字符的标题,并将其用作数据库中的唯一键。
答案 1 :(得分:0)
function view($title) {
$this->Post->title = $title;
$this->set('post', $this->Post->read());
}
这会让你: cakephp.local /帖/视图/ some_text_contents
使用以下方式重写.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_URI} ! \.html$
RewriteCond %{REQUEST_URI} ! /$
RewriteRule ^(.*)$ $1.html