Возможно ли иметь префикс на CakePHP 2.5 маршрутах?Маршрутизация CakePHP без префикса
Мы пытаемся достичь маршрута типа <domain>/<username>
, где будет курсировать до стандартного торта Cake, например <domain>/users/view/XX
. Подобно структуре URL-адреса Twitter, хотя я не уверен, что маршрут с нулевым префиксом возможен. Если да, то это также нарушит стандартную маршрутизацию торта для других моделей?
<domain>/users/view/1
работает нормально.
Я могу добавить маршрут к routes.php так, что несколько сокращает URL,
Router::connect(
'/u/*',
array('controller' => 'users', 'action' => 'view_by_slug')
);
Однако нам интересно, если это возможно, чтобы сократить его еще больше и достичь префикса <domain>/<username>
типа.
Edit: Для полноты здесь тока 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')
);
Кажется, работает, однако он отключает Cake по умолчанию маршрутизации.
Хорошая идея, если вы не используете ссылки, такие как domain.com/account, domain.com/messages, domain.com/login и т. д. Если вы это сделаете, вам нужно будет указать пользователям при регистрации, что они не могут использовать определенные имена пользователей, и это может быть очень длинный список. Ответ HelloSpeakman должен работать. – bowlerae