2012-01-19 13 views
0

で作業していない私は、次のモデルクラスを持っている:CakePHPはそれぞれのUUIDを生成するように、IDフィールドは、すべてのCHAR(36)に設定されるようにCakePHPの - toMany関係はUUIDを

class Property extends AppModel 
{ 
    var $name = 'Property'; 

    var $hasMany = array(
     'Inventory' => array(
      'className' => 'Inventory', 
      'foreignKey' => 'property_id' 
     ) 
    ); 
} 

私のデータベーススキーマが設定されていますエンティティ。プロパティエンティティで検索を実行しようとすると、関連するインベントリを取得するために必要な結合が追加されていないようです。誰もがこの問題の経験がありますか?

ありがとうございます!

+0

ケーキベークコンソールを使用してデータベースからモデルを構築しましたか?私は通常、ケーキのベーキングコンソールを使用していると私は関係とChar(36)上のUUIDsに問題はありません。 – snowflake

答えて

0

答えはややばかだと分かります。

これはCakePHP 2.0のインストールからCakePHP 1.3のインストールに移行しました(使用していたサーバー上でPHPを更新できませんでした)。私のモデルクラスはすべて大文字の最初の文字を持っていました。ファイルをProperty.phpからproperty.phpに変更すると修正されました。

1

UUIDはそれとは関係がありません。私は非常によく似たモデル設定をしており、どこでもUUIDを使用しています。あなたはCakePHPの大会:)

私は、これらの行を削除し、製品IDを持つ実際の在庫については、データベースをチェックしたい、次のように見えるよう

あなたは技術的には、そこにそれらのclassNameforeignKey宣言を必要としません。そうでない場合は、find()を投稿してください。

+0

私は単に$ hasMany = 'Inventory'との関係を変更しましたが、プロパティに一致するproperty_idを持つ在庫があります。私の発見は、現時点では単純に$ this-> Property-> find( 'all')です。 SQLクエリログは、プロパティテーブルでSELECTを実行していることを示していますが、JOINやその他のクエリはインベントリテーブルにありません。奇妙な! – NathanGaskin

関連する問題