有限长度到slu field领域

时间:2013-03-11 07:11:06

标签: php cakephp cakephp-1.3 cakephp-2.0 cakephp-2.1

如何在数据库中给出slug字段的限制。在下面的代码问题是表的字段,它包含长文本。所以我想为有限长度的问题字段创建slug。我怎么办? //在模型中

var $actsAs = array(
            'Sluggable.Sluggable' => array(
            'label' => 'question',
            'slug' => 'slug',
            'separator' => '-',
            'overwrite' => false
          )
        );

2 个答案:

答案 0 :(得分:0)

查看source for the behaviour

只需将'length'=>50参数添加到缓存数组即可。

CakeDC的大多数插件都非常出色但缺少文档(这应该鼓励您自己开始理解插件的工作原理)。

答案 1 :(得分:-1)

创建一个功能

   function create_slug($string) {
      $string = substr($string, 0, 100);
      $string = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $string);
      $string = strtolower(trim($string, '-'));
      $string = preg_replace("/[\/_|+ -]+/", '-', $string);
      return $string;
    }

并像这样使用

$actsAs = array(
    'Sluggable.Sluggable' => array(
        'label' => 'very & long & question',
        'slug' => create_slug('very & long & question'),
        'separator' => '-',
        'overwrite' => false
    )
);

print_r($actsAs);

// ouptut

Array
(
    [Sluggable.Sluggable] => Array
        (
            [label] => very & long & question
            [slug] => very-long-question
            [separator] => -
            [overwrite] => 
        )

)