2013-10-25 29 views
0

我有兩個表(團隊,team_managers),我試圖用ORM訪問。我得到錯誤「Fuel \ Core \ PhpErrorException [注意]:嘗試獲取非對象的屬性」。Fuelphp ORM無法訪問相關表

這是引發錯誤的代碼:

<?php 
$team = Model_Team::find('all', array('related' => array('team_managers'))); 
$team_managers = $team->team_managers; 

foreach($team_managers as $tm){ 
    echo $tm->id; 
} 

這樣做的工作,但我認爲它違背了ORM的目的:

<?php 
$team = Model_Team::find('all', array('related' => array('team_managers'))); 
$team_managers = Model_Team_Manager::find('all'); 

foreach($team_managers as $tm){ 
    echo $tm->id; 
} 

在組隊模式,我有這個關係:

protected static $_has_many = array('team_managers' => array(
'model_to' => 'Model_Team_Manager', 
'key_from' => 'id', 
'key_to' => 'team_id', 
)); 

我怎樣才能得到它與$ team-> team_managers工作?

+0

它實際上做的工作,如果我把一個特定的團隊,而不是「所有」。有誰知道我爲什麼不能用「全部」來稱呼它?在fuelphp文檔中,他們使用「全部」並且工作正常。 = [http://fuelphp.com/docs/packages/orm/relations/intro.html –

回答

0

我覺得你在做什麼是好的,什麼我不明白的是爲什麼你正在試圖訪問$team->team_managers

$teamModel_Team對象的數組,這是你的錯誤。

嘗試以下操作:

$teams = Model_Team::find('all', array('related' => array('team_managers'))); 

foreach ($teams as $team) { 
    foreach ($team->team_managers as $team_manager) { 
     echo $team_manager->id; 
    } 
}