2012-03-31 5 views
4

私は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が、ケーキのために働く、このルールを追加しようとしたが、実際に「ソフトウェア」と命名され、それはソフトのテーブルを見つけることができないことを不平を言っています。私は近くにいると感じていますが、これがどう機能しているかはまだ分かりません。

+0

そのような場合には、それはチケットが開かれるかどうかを疑問視するスタンドhttp://www.cakephp.lighthouseapp.com/projects/42648/tickets/ - ソフトウェアが複数形になることは決してありません。したがって、「ソフトウェア」は不正なインフレクター結果であり、したがってバグです。 – mark

+0

真実ですが、おそらく、自分のインフレクタールールを作成する方法をよりよく文書化するために、Cakeにとってはチケットが必要です。私は一度それを把握すると私は1つを追加します。 – cgTag

答えて

関連する問題