0

データベースのスラッグ フィールドに制限を与えるにはどうすればよいですか。以下のコードの質問はテーブルのフィールドであり、長いテキストが含まれています。そのため、長さが制限された質問フィールドのスラッグを作成したいのですが、どうすればよいですか? //モデル内

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

2 に答える 2

0

動作のソースを見てください。

'length'=>50パラメータをスラッガブル配列に追加するだけです。

CakeDC のプラグインのほとんどは優れていますが、ドキュメントが不足しています (プラグインがどのように機能するかを理解するために独自の作業を行うことをお勧めします)。

于 2013-03-11T10:14:33.103 に答える
-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);

// 出力

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

)
于 2013-03-11T07:18:23.300 に答える