【问题标题】:Removing white space of urls with - in cakephp routing?在 cakephp 路由中使用 - 删除 url 的空格?
【发布时间】:2010-12-15 23:51:44
【问题描述】:

我有一个类似http://abc.com/users/index/University of Kansas 的网址,我想将其设为University-of-Kansas。怎么可能通过 mysql 使用 Cakephp ???

【问题讨论】:

    标签: mysql cakephp routes url-routing


    【解决方案1】:

    使用可以使用Inflector::slug($data, '-');内置的Cake

    来源:http://api.cakephp.org/class/inflector#method-Inflectorslug

    所以你会从$this->params['url'] 得到字符串“堪萨斯大学”:

    $data = $this->params['url'][....]:
    $slug = Inflector::slug($data, '-');
    

    【讨论】:

      【解决方案2】:

      http://cake-syrup.sourceforge.net/ingredients/sluggable-behavior/

      这种行为允许您的模型在保存或编辑记录时创建 slug。

      【讨论】:

        【解决方案3】:

        我不确定您的数据是如何填充的,但您可能希望存储一个标签或 slug 字段以及完整标题。因此,您的数据库将在单独的字段中同时包含“堪萨斯大学”和“堪萨斯大学”。保存条目时,您可以使用正则表达式自动生成后一个字段,例如:

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

        根据您的 CakePHP 的设置方式,您可能希望创建一个将这个 slug 值传递给控制器​​的路由,这样您就可以使用该字段在数据库中查找正确的条目。

        【讨论】:

        • 告诉人们如何使用 Cake 的内置工具来完成这样的事情会更有用。 Inflector::slug 是正确的解决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-16
        • 2012-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-17
        • 2016-05-14
        相关资源
        最近更新 更多