5

私は 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',

Software Singular Inflector ルールを定義する正しいコードはどれですか?

編集:

 Inflector::rules('singular', array('rules'=>array('/software/'=>'software'),'irregular'=>array('software'=>'software'),'uninflected'=>array('software')));

SoftwareController で機能するこのルールを追加しようとしましたが、Cake は、実際には「Software」という名前の Softwares テーブルが見つからないと不平を言っています。私は近づいていると感じていますが、これがどのように機能するかについてまだ何かが欠けています.

4

1 に答える 1

8

あなたは本のどこを見る(または検索する)かを知る必要があります:http: //book.cakephp.org/2.0/en/development/configuration.html#inflection-configuration

あなたの場合

Inflector::rules('singular', array(
    'uninflected' => array('software')
));
Inflector::rules('plural', array(
    'uninflected' => array('software')
));
于 2012-03-31T20:04:23.583 に答える