0
CakePHP 2.5路由可能没有前缀吗?不带前缀的CakePHP路由
我们正在尝试实现<domain>/<username>
类型的路由,其中路由到标准的Cake url,如<domain>/users/view/XX
。类似于Twitter的URL结构,尽管我不确定零前缀路由是否可能。如果是这样,它是否也会打破其他模型的标准Cake路由?
<domain>/users/view/1
工作正常。
但是我们想知道我可以添加到routes.php文件这样的路线,略微缩短的URL,
Router::connect(
'/u/*',
array('controller' => 'users', 'action' => 'view_by_slug')
);
如果能够更加缩短,实现了<domain>/<username>
类型前缀。
编辑:为了完整这里是当前view_by_slug()
控制器
public function view_by_slug($slug = null) {
$user = $this->User->findBySlug($slug);
debug($user);
if (!$user) {
throw new NotFoundException(__('Invalid user'));
}
}
Users.slug在数据库中一个varchar(255)
Router::connect(
'/*', array('controller' => 'users', 'action' => 'view_by_slug')
);
似乎工作,但它会禁用默认蛋糕路由。
如果你不使用等环节的domain.com/account,domain.com/messages好主意,domain.com /登录等。如果你这样做,你需要在注册时指定用户不能使用某些用户名,这可能是一个很长的名单。 HelloSpeakman的答案应该可以工作。 – bowlerae 2014-10-22 14:08:13