Устранение пробелов в URL с помощью маршрутизации CakePHP? - PullRequest
2 голосов
/ 12 ноября 2009

У меня есть URL типа http://abc.com/users/index/University of Kansas, и я хочу сделать его University-of-Kansas. Как это возможно через MySQL с использованием Cakephp ???

Ответы [ 3 ]

4 голосов
/ 12 ноября 2009

Использование можно использовать торт, встроенный в Inflector::slug($data, '-');

Источник: http://api.cakephp.org/class/inflector#method-Inflectorslug

Таким образом, вы получите строку "Университет Канзаса" из $this->params['url']:

$data = $this->params['url'][....]:
$slug = Inflector::slug($data, '-');
0 голосов
/ 13 ноября 2009

http://cake -syrup.sourceforge.net / ингредиенты / Sluggable-поведение /

Это поведение, которое позволяет вашей модели создавать слагов, когда записи сохраняются или редактируются.

0 голосов
/ 12 ноября 2009

Я не уверен, как заполняются ваши данные, но вы, вероятно, хотите сохранить тег или поле слагов вместе с полным заголовком. Таким образом, ваша база данных будет содержать как «Университет Канзаса», так и «Университет Канзаса» в отдельной области. При сохранении записи вы можете автоматически сгенерировать последнее поле с регулярным выражением, например:

$slug = preg_replace("/[^-_0-9A-Za-z]/", "-", $title);

В зависимости от того, как настроен ваш CakePHP, вы, вероятно, захотите создать маршрут, который передал бы это значение slug в контроллер, чтобы затем вы могли найти нужную запись в базе данных, используя это поле.

...