Dev Notes

Various Cheat Sheets and Resources by David Egan/Carawebs.

Laravel Mutators

David Egan

Laravel mutators are Model methods that process data in some way before it is stored in the database.

Potential use cases:

  • Capitalising names before saving
  • Title-casing titles
  • Slugifying slugs
  • Change date strings to Carbon objects
  • Hashing passwords
  • JSON encoding (possible in MySQL 5.7.8, coming soon in MariaDB)

To set up a Mutator, add a suitable method in the Model class. The database column is determined by the method name, which hence needs to be in a certain format:


Note that the column name needs to be written in StudlyCaps (PascalCase) - the first letter of each sub-word (including the first) is capitalised.

A mutator that converts a string to title case, saved in the post_title column would look like this:

public function setPostTitleAttribute($title)
      $this->attributes['post_title'] = ucwords($title);

Note that the method doesn’t return anything - it just directly accesses the atribute and “mutates” the value.


comments powered by Disqus