2011-12-17 9 views
0

kohana ORMに親の子エンティティをロードするにはどうすればよいですか?Kohana ORMには親の子レコードが含まれています

モデル:

class Model_User extends ORM 
{ 
    protected $_primary_key = 'UserId'; 

    protected $_has_many = array(
     'rides' => array(
      'model' => 'ride', 
      'foreign_key'=> 'RideId' 
     ) 
    ); 
} 

class Model_Ride extends ORM 
{ 
    protected $_primary_key = 'RideId';  

    protected $_belongs_to = array(
     'user' => array(
      'model'  => 'user', 
      'foreign_key' => 'UserId', 
    ), 
    ); 
} 

は、どのように私は、ユーザーとそのすべてのRideを取得するクエリを書くのでしょうか?

$members = ORM::factory('user'); 

$members->where('FirstName', '=', 'Peter')->find_all(); 

がどのように私はそれらピーターズすべてにFirstOrDefaultを行うことができますし、そのユーザーのすべての乗り物をリスト:

これは私がこれまで持っているものでしょうか?このような

答えて

1

何か:foreachの内find_allとして

$members = ORM::factory('user'); 
$members_list = $members->where('FirstName', '=', 'Peter')->find_all(); 

foreach($members_list as $member) { 
    $rides = $member->rides->find_all(); 
    foreach($rides as $ride) { 
     // Work with ride model 
    } 
} 
+0

悪い解決策は、反復あたりのクエリになります。ビルダーを使用し、結合を使用する必要があります。 –

関連する問題