私はCakePHP 2.1を使用しています.CakePHPは、複数のフォーム "Softwares"に正しくないすべての参照を変換しているため、 "Software"という語のInflectorルールを定義する必要があります。 。 CakeはSoftwaresControllerとSoftwaresという名前のテーブルを探しています。Inflectorのブートストラップに特異なルールを定義する
ブートストラップにルールを作成し、このドキュメントのリファレンスを読むことができます。
http://book.cakephp.org/2.0/en/development/configuration.html#inflection-configuration
また、私はlibに/ケーキ/ 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',
何ソフトウェア単数語形変換ルールを定義するための正しいコードでしょうか?
EDIT:
Inflector::rules('singular', array('rules'=>array('/software/'=>'software'),'irregular'=>array('software'=>'software'),'uninflected'=>array('software')));
私はSoftwareControllerが、ケーキのために働く、このルールを追加しようとしたが、実際に「ソフトウェア」と命名され、それはソフトのテーブルを見つけることができないことを不平を言っています。私は近くにいると感じていますが、これがどう機能しているかはまだ分かりません。
そのような場合には、それはチケットが開かれるかどうかを疑問視するスタンドhttp://www.cakephp.lighthouseapp.com/projects/42648/tickets/ - ソフトウェアが複数形になることは決してありません。したがって、「ソフトウェア」は不正なインフレクター結果であり、したがってバグです。 – mark
真実ですが、おそらく、自分のインフレクタールールを作成する方法をよりよく文書化するために、Cakeにとってはチケットが必要です。私は一度それを把握すると私は1つを追加します。 – cgTag