【问题标题】:CakePHP: Save inflected title into a slug columnCakePHP:将变形的标题保存到 slug 列中
【发布时间】:2011-10-25 09:45:26
【问题描述】:

我有一个名为 posts 的数据库表,其中包含“id、title、slug 和 content”

我想用创建或编辑帖子时输入的标题的变形版本自动填充 slug 列。

例如,如果我创建了一个名为“Welcome to my Blog”的帖子,则以下 slug 将保存在该帖子的数据库中:“Welcome_to_my_Blog”。

我想这是你会在控制器中做的事情?

有人可以帮忙吗?谢谢

【问题讨论】:

标签: cakephp


【解决方案1】:

我使用CakeDC Utils plugin,它具有“sluggable”行为,您只需设置 slug 的字段名称,它会自动从 name 字段为您保存一个 slug(如果您可以指定另一个字段需要)。将其放入插件文件夹后,这是我的设置:

public $actsAs = array(
    'Utils.Sluggable' => array(
        'label' => 'name',
        'method' => 'multibyteSlug',
        'separator' => '-'
    )
);

确保您的数据库中有一个slug 字段。

【讨论】:

    【解决方案2】:

    您可以在保存帖子时在控制器或模型中执行此操作。

    【讨论】:

      【解决方案3】:

      我不会(技术上)使用 slug 来指向内容。您可能最好使用 ID 并将 slug 包含在 URL 中,仅用于 SEO 目的。这可以在需要时使用 Cake 内置的 Inflector::slug() 方法轻松实现。

      也可以在这里查看我的帖子:CakePHP: Use post title as the slug for view method

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-29
        • 2011-08-04
        • 1970-01-01
        • 2012-06-14
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        相关资源
        最近更新 更多