Back to Twig

``slug``

doc/filters/slug.rst

3.24.01.6 KB
Original Source

slug

The slug filter transforms a given string into another string that only includes safe ASCII characters.

Here is an example:

.. code-block:: twig

{{ 'Wôrķšƥáçè ~~sèťtïñğš~~'|slug }}
Workspace-settings

The default separator between words is a dash (-), but you can define a separator of your choice by passing it as an argument:

.. code-block:: twig

{{ 'Wôrķšƥáçè ~~sèťtïñğš~~'|slug('/') }}
Workspace/settings

The slugger automatically detects the language of the original string, but you can also specify it explicitly using the second argument:

.. code-block:: twig

{{ '...'|slug('-', 'ko') }}

The slug filter uses the method by the same name in Symfony's AsciiSlugger <https://symfony.com/doc/current/components/string.html#slugger>_.

.. note::

The ``slug`` filter is part of the ``StringExtension`` which is not
installed by default. Install it first:

.. code-block:: bash

    $ composer require twig/string-extra

Then, on Symfony projects, install the ``twig/extra-bundle``:

.. code-block:: bash

    $ composer require twig/extra-bundle

Otherwise, add the extension explicitly on the Twig environment::

    use Twig\Extra\String\StringExtension;

    $twig = new \Twig\Environment(...);
    $twig->addExtension(new StringExtension());

Arguments

  • separator: The separator that is used to join words (defaults to -)
  • locale: The locale code of the original string as defined in RFC 5646_

.. _RFC 5646: https://www.rfc-editor.org/info/rfc5646