Я пытаюсь заставить мое приложение CakePHP использовать слизни вместо ids. Я прочитал несколько учебников и книгу CakePHP об этом, но я должен пропустить что-то простое.CakePHP Routes.php для Slugs
В моей таблице есть поле «slug», которое я хочу использовать для URL вместо идентификатора по умолчанию.
Я изменил мой взгляд на это ItemsController:
public function view($slug = null) {
if (!$this->Item->exists($slug)) {
throw new NotFoundException(__('Invalid item'));
}
$this->set('item', $this->Item->findBySlug($slug));
}
И добавил это к моему routes.php
Router::connect(
'/items/:slug',
array('controller' => 'items', 'action'=>'view'),
array('pass'=>array('slug'))
);
Но я все еще получаю "Invalid позицию, запрашиваемый адрес не найден ..." при переходе к:
mycakeapp/items/slug-value
Однако, если я изменю все от «слизняк» до «ид», то URL:
mycakeapp/items/id-value
прекрасно работает
Может кто-нибудь мне помочь? Заранее спасибо.
Действительно, это был ItemExists, я должен был это понять. Благодаря! – user2856332