クラスのメソッド :: Inflector :: 実用的な各種の組み込みライブラリ :: マニュアル :: 1.2 Collection :: The Cookbook
よく使うのに、いつも忘れるInflector。
単語を複数形にしたり単数形にしたり、キャメル記法にしたり、人間に読みやすい切り分けをしてくれたり?とにかく便利なInflectorですが、いっつもクラス名を忘れてしまって、検索することすらできない有様。最後には、じゃあ仕方ねーかとCakePHPのマニュアルページを見る羽目になるのでございます。
……毎度大変なので、自前でメモ。
以下、マニュアルから転載
入力 出力 pluralize Apple, Orange, Person Apples, Oranges, People singularize Apples, Oranges, People Apple, Orange, Person camelize Apple_pie, orange_pekoe, people_person ApplePie, OrangePekoe, PeoplePerson underscore アンダースコアが含まれるように変換されるのは、キャメル記法で書かれた単語のみ(たとえば「camelCase」というようなもの)であることに注意してください。スペースを含むものは小文字に変換はされますが、アンダースコアは含みません。 applePie, orangePekoe apple_pie, orange_pekoe humanize apple_pie, orange_pekoe, people_person Apple Pie, Orange Pekoe, People Person tableize Apples, OrangePekoe, people_person apples, orange_pekoe, people_person classify apples, orange_pekoes, people_person Apple, OrangePekoe, PeoplePerson variable apples, orange_pekoes, people_person apples, orangePekoes, peoplePerson slug Slug は特殊な文字を同等なラテン文字に変換し、同等のラテン文字が無いものとスペースはアンダースコアに変換します。また、 slug メソッドはエンコーディングが UTF-8 であることを期待します。 puree puree
使い方
コントローラ、モデル、ビューのどこでも使えます。(多分)
使い方はいたって簡単。
Inflector::camelize(orange_pekoe); // ⇒ OrangePekoe
って感じで使えます。