3.4.6 自定义Inflections

Cake的命名约束已经非常完美。你可以为你的表取名big_boxes,你的模块BigBox,你的控制器BigBoxesController。所有的东西都能自动地运行起来。CakePHP通过这些单词的单复数的变化了来联系事物。

有些情况下,CakePHP的inflector(比如pluralizes, singularizes, camelCases, and under_scores)不能像你预期的那样运行起来。如果CakePHP不能识别你的Foci或者Fish,你可以编辑/app/config/inflections.php文件告诉CakePHP你的特殊类

在这个文件中有六个变量,每个都允许你改变CakePHP inflection的行为

inflections.php 变量 描述
$pluralRules 这个数组包含了复数化特殊案例的正则表达式的规则,键是要匹配的模式,值是要替换的值
$uninflectedPlural 一个数组,包含不需要改成复数的单词(像物质名词这样的单词)
$irregularPlural 一个数组,包含单词和他的复数形式。数组的键是单词的单数形式,数组的值就是单词的复数形式。这个数组用来保存不需要遵循$pluralRules规则的单词
$singularRules 与$pluralRules类似,将单词变为单数形式
$uninflectedSingular 与$uninflectedPlural类似,这个数组里的单词没有单数形式,这个数组的默认设置与$uninflectedPlural相同。
$irregularSingular 与$irregularPlural相同,这个数组中的单词以单数形式存在