我正在使用 CakePHP 2.1 并且需要为单词“Software”定义一个 Inflector 规则,因为 CakePHP 正在将所有引用转换为不正确的复数形式“Softwares”。Cake 正在寻找 SoftwaresController 和一个名为 Softwares 的表。
我确实知道在引导带中创建规则,并阅读此文档参考。
http://book.cakephp.org/2.0/en/development/configuration.html#inflection-configuration
我还查看了 lib/Cake/Inflector.php 文件,但无法弄清楚定义规则的语法。它看起来有点像正则表达式。以下是一些规则示例。
'/(s)tatus$/i' => '\1\2tatuses',
'/(quiz)$/i' => '\1zes',
'/^(ox)$/i' => '\1\2en',
'/([m|l])ouse$/i' => '\1ice',
'/(matr|vert|ind)(ix|ex)$/i' => '\1ices',
'/(x|ch|ss|sh)$/i' => '\1es',
定义软件奇异变形器规则的正确代码是什么?
编辑:
Inflector::rules('singular', array('rules'=>array('/software/'=>'software'),'irregular'=>array('software'=>'software'),'uninflected'=>array('software')));
我尝试添加此规则,该规则适用于 SoftwareController,但 Cake 抱怨它找不到 Softwares 表,该表实际上名为“Software”。我觉得我很接近了,但仍然缺少一些关于它是如何工作的东西。