CakePHP:将变形标题保存到slug列中

时间:2011-08-11 22:21:31

标签: cakephp

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

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

因此,例如,如果我创建了一个名为“欢迎使用我的博客”的帖子,则以下slug将保存在该帖子的数据库中:“Welcome_to_my_Blog”。

我认为这是你在控制器中会做的事情吗?

有人可以帮忙吗?感谢

3 个答案:

答案 0 :(得分:1)

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

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

确保数据库中有slug字段。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我不会使用slugs(技术上)来指向内容。你最好使用这个ID,并在URL中包含slug仅用于SEO目的。使用Inflector :: slug()方法构建到Cake中时,可以很容易地实现这一点。

另见我的帖子:CakePHP: Use post title as the slug for view method