2016-05-16 12 views
0

私は、CakePHPのためのプロジェクトを引き継いでいる、私は新しいと私はそれが容易ではない見つけ、Magentoのは困難でなければなりませんが、私はCakePHPがより困難見つけ、多分私は私がそれを知った瞬間に到達していない...cakePHPでモデルを探すにはどうすればいいですか?

public $belongsTo = array(
    'Postcode' => array(
     'className' => 'Postcode', 
     'foreignKey' => 'postcode_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ), 

すべてが動作しますが、ツールAgentRansackと私はモデルの郵便番号を見つけることができません:私は(表の郵便番号のための)次のモデルを持っています。テーブルの名前にポストコードがあるだけでなく、私はポストコードとポストコードの関係も見つけることができません。

このようなモデルは、Postcode.phpクラスとは異なる方法でどのように設定できますか?

+2

ドキュメントを読む:)。先に進む前に[ブログのチュートリアルを行う](http://book.cakephp.org/3.0/ja/tutorials-and-examples/blog/blog.html)(読んでいない、* do *)をお勧めします継承プロジェクト。 – AD7six

答えて

3

具体的なモデルクラスが存在しない(または何らかの理由で見つからない)モデルを要求する場合、動的モデルオブジェクトはAppModelクラスから生成されます。 CakePHPのクックブックから

:それは/app/Modelで対応するファイルを見つけることができない場合

CakePHPは動的にあなたのためのモデルオブジェクトを作成します。これは、モデルファイルの名前が正しくない場合(たとえば、Ingredient.phpではなく、ingredient.phpまたはIngredients.phpと指定されている場合)、CakePHPはモデルファイル(CakePHPがないと仮定します)ではなくAppModelのインスタンスを使用します。 。モデルで定義したメソッドやモデルに添付されているビヘイビアを使用しようとしているときに、呼び出すメソッドの名前であるSQLエラーが発生している場合は、CakePHPモデルを見つけることができず、ファイル名、アプリケーションキャッシュ、またはその両方をチェックする必要があります。あなたは「郵便番号」のクラスを作成する必要があり、それの音に

http://book.cakephp.org/2.0/en/models.html#understanding-models

+0

あなたの素早い答えに感謝ndm。私はこれをすでに読んでいる。しかし、このクラスのPostcodeを使用すると、それはテーブルのポストコードとどのように関連していますか? – Francois99

+2

@ Francois99「__それは関連している」という意味の帽子は分かりませんが、もう少し具体的にする必要があります。私はCakePHPがモデル 'Postcode'に' postcodes'テーブルを使用する方法を知っています。答えは "[**命名規則**]です(http://book.cakephp.org/2.0/ja/getting-モデルは単数のラクダキャップ付きテーブル名であり、その逆のテーブルは複数の下線付きモデル名です。 – ndm

+0

ありがとう、私はこれを期待していなかった、cakePHPはスマートです。実際にInflector :: pluralize( 'Postcode')=ポストコード(ポストコードが終了しないのでポストコード) – Francois99

0

は、次のように読むhttp://book.cakephp.org/2.0/en/models.html

しかし、それは次のようになります。 :

// app/Model/Postcode.php 
App::uses('AppModel', 'Model'); 

class PostCode extends AppModel { 

    public $validate = array(
     // Validation 
    ); 

    // Replace 'ModelName' with the name of the class where the code sites you mentioned above 
    public $hasMany = array(
     'ModelName' => array(
      'className' => 'ModelName', 
      'foreignKey' => 'postcode_id' 
     ) 
    ); 
} 
関連する問題