= sfPropelActAsSluggableBehaviorPlugin plugin = This `sfPropelActAsSluggableBehaviorPlugin` plugin that automates the generation of 'slugs' based on the return value of a model method. These are useful to hide the primary key in routing requests, and make your urls look fancy. For example, for a blog post whose title is 'A post', this behavior will fill the slug database field with 'a_post'. If a_post exists, a_post_1 is used, and so on. == Instalation == * Install the plugin {{{ symfony plugin-install http://plugins.symfony-project.com/sfPropelActAsSluggableBehaviorPlugin }}} * Add the slug field to your schema.yml for a desired table {{{ ... title: varchar(255) slug: varchar(255) ... }}} * Enable Propel behavior support in `propel.ini`: {{{ propel.builder.AddBehaviors = true }}} If you have to enable the behavior support, rebuild your model: {{{ symfony propel-build-model }}} * Enable the behavior for one of your Propel model: {{{ #!php <?php // lib/model/ForumPost.php class ForumPost { } $columns_map = array('from' => ForumPostPeer::TITLE, 'to' => ForumPostPeer::SLUG); sfPropelBehavior::add('ForumPost', array('sfPropelActAsSluggableBehavior' => array('columns' => $columns_map, 'separator' => '_', 'permanent' => true))); }}} The ''column map'' is used by the behavior to know which columns hold information it needs : * from : Model column holding the string to convert. For example, the post title. ('title' by default) * to : Model column holding the generated string, aka slug. ('slug' by default) The ''separator'' parameter is used by the behavior to replace the whitespaces. ('-' by default) The ''permanent'' paramter is used by the behavior to avoid generating the slug when the model is updating the ''from'' column, useful for permalinks. (false by default) == Usage == Every time a post is saved, the slug will be generated automatically. You can later access it through ->getSlug() for example.