2012-04-03 15 views
1

私は立ち往生しており、ドキュメントを読むことは私を助けてくれないようです。多対多DataMapper CodeIgniter

私は多方面の関係で働いていますが、私は簡単な方法があると確信していますが、多対多の関係については固執しています。

私はかなりいくつかのことを試してみたが、基本的に私は3つのテーブルを持っている:

homes: 
- id 
- address_id 
- price 
- etc 

features: 
- id 
- name 

features_homes 
- id 
- feature_id 
- home_id 

私はセットアップ私のモデルはかなりの数の異なる方法できました。

var $has_many = array(
    'feature' => array(
     'class' => 'feature', 
     'other_field' => 'home', 
     'join_self_as' => 'home', 
     'join_other_as' => 'feature', 
     'join_table' => 'features_homes' 
    ) 
); 

そして問題は、私は家に関連した複数のレコードを取得する方法を見つけ出すことができないです

var $has_many = array('feature'); 

の基本的なバージョン。

私は1つのアイテムのグループではなく、1つのアイテムになります。

出力例:

[id] => 1 
[address_id] => 1 
[latlong] => 00.000, -00.00000 
... 
[feature_id] => 1 
[feature_name] => Hard Wood Floors 

私はあなたが保存するときにそれらをリンクすることにより、オブジェクトを別のオブジェクトに関連付け

[id] => 1 
[address_id] => 1 
[latlong] => 00.000, -00.00000 
... 
[features] => // Object of all items 

答えて

1

を取得しようとしています。

あなたはそれを複数回行うことができます。

$parent = new Parent(1); 
$childA = new Child(1); 
$childB = new Child(2); 

$parent->save($childA); $parent->save($childB); 

または配列を渡すことによって:

$parent = new Parent(1); 
$children = array(
    new Child(1), 
    new Child(2), 
); 

$parent->save($children); 
+0

あなたはすでにあなたがアクセスしようとしているデータベースに保存されたこのデータを持っている場合は? DataMapperですべてを保存する必要がありますか? – Seth

+0

それを作成するのではなく、それらをフェッチします。 – WanWizard

+0

フレームワークは本当にクールですが、私はそれを本当に把握するためにそれを叩き続ける必要があると思います。私はちょうど正しくない何かを持っています、そして、私はそれが私のコードだと確信しています。あなたは、さまざまなシナリオを通してあなたが歩く良いチュートリアルをオンラインで知っていますか?私が探していた結果を得ることができましたが、ループ内でループを実行してデータを取得する必要がありました。私のモデルは何とか変更する必要があると思いますので、オブジェクト内の単一のキーの下に複数の結果をグループ化できます。 – Seth

関連する問題