【发布时间】:2010-12-15 23:51:44
【问题描述】:
我有一个类似http://abc.com/users/index/University of Kansas 的网址,我想将其设为University-of-Kansas。怎么可能通过 mysql 使用 Cakephp ???
【问题讨论】:
标签: mysql cakephp routes url-routing
我有一个类似http://abc.com/users/index/University of Kansas 的网址,我想将其设为University-of-Kansas。怎么可能通过 mysql 使用 Cakephp ???
【问题讨论】:
标签: mysql cakephp routes url-routing
使用可以使用Inflector::slug($data, '-');内置的Cake
来源:http://api.cakephp.org/class/inflector#method-Inflectorslug
所以你会从$this->params['url'] 得到字符串“堪萨斯大学”:
$data = $this->params['url'][....]:
$slug = Inflector::slug($data, '-');
【讨论】:
http://cake-syrup.sourceforge.net/ingredients/sluggable-behavior/
这种行为允许您的模型在保存或编辑记录时创建 slug。
【讨论】:
我不确定您的数据是如何填充的,但您可能希望存储一个标签或 slug 字段以及完整标题。因此,您的数据库将在单独的字段中同时包含“堪萨斯大学”和“堪萨斯大学”。保存条目时,您可以使用正则表达式自动生成后一个字段,例如:
$slug = preg_replace("/[^-_0-9A-Za-z]/", "-", $title);
根据您的 CakePHP 的设置方式,您可能希望创建一个将这个 slug 值传递给控制器的路由,这样您就可以使用该字段在数据库中查找正确的条目。
【讨论】: