Sluggable Behavior - Generate Unique Slug In CakePHP

On the web, “slug” is a short text used in a URL to identify and describe a resource. Sluggable behavior is cakephp model behaviors that allow us to generate unique slug. Sluggable Behavior who created by eberfreitas is a simpler version of Mariano Iglesias’ Sluggable Behavior with a few add-ons. It’s basically the same thing but instead of implementing all the slug logic on the behavior, it just uses Cake’s Inflector::slug() method. With CakePHP 1.3, this method is really powerful and flexible.

slugify Sluggable Behavior   Generate Unique Slug In CakePHP

To use it, just place the behavior file on the proper place (/app/models/behaviors/)and call it on the model you want to “slugify”:

var $actsAs = array('Sluggable');

To use it, just place the behavior file on the proper place and call it on the model you want to “slugify”: var $actsAs = array(‘Sluggable’); By default, this will automatically create slugs from a field named “title” and place it under a field named “slug”. If you want, you can customize everything. Checkout the configuration keys:

var $actsAs = array(
	'Sluggable' => array(
		'fields' => 'title',
		'scope' => false,
		'conditions' => false,
		'slugfield' => 'slug',
		'separator' => '-',
		'overwrite' => false,
		'length' => 256,
		'lower' => true
	)
);

Source: http://eberfreitas.virb.com/blog/text/12619608

Incoming search terms for the article:

Related Posts

Read/Write An XML File Using CakePHP 1.3

Haml, Sass, Markdown, and CakePHP – Oh My!

CakePHP - jQuery Autocomplete Tutorial

How to Authenticate Users With Facebook Graph In CakePHP

2 Comments

  1. Jon L

    01.18.2011

    I wasn’t aware another sluggable behavior existed. Do you think I should change or it doesn’t matter. Also, do you know how to use this behavior to make pretty urls? Thank you

    • Mufti Ali

      01.18.2011

      Hi Jon, this behaviour allow You to create unique slug, you can also setting the maximum slug length. To implement this plugin is pretty simple. Put this behaviour in your behaviours folder (/app/models/behaviours/), and put this code to your model, eg user.php
      var $actsAs = array(
      'Sluggable' => array(
      'fields' => 'title',
      'scope' => false,
      'conditions' => false,
      'slugfield' => 'slug',
      'separator' => '-',
      'overwrite' => false,
      'length' => 256,
      'lower' => true
      ),
      'Containable'
      );