1

私は立ち往生していて、ドキュメントを読んでも私を助けていないようです。

私は1対多の関係を持っていますが、もっと簡単な方法があると確信していますが、多対多の関係に関しては行き詰まっています。

私はかなり多くのことを試しましたが、基本的に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');

問題は、家に関連付けられている複数のレコードを取得する方法がわからないことです。

アイテムのグループではなく、単一のアイテムになってしまいます。

出力例:

[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
4

1 に答える 1

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);
于 2012-04-03T06:42:27.430 に答える