2013-05-27 86 views
0

我正在使用最新版本的RedBeanPHP。我正在模擬一個足球夾具結構。單場比賽,由2支球隊執行,屬於單一比賽日(數據庫中的夾具)。RedBeanPHP多個FK到同一張表

$o = R::dispense('game'); 
$o->l = R::load('team',$l[$i]); 
$o->v = R::load('team',$v[$i]); 
$o->fixture = R::load('fixture',$id); 
$id = R::store($o); 

在數據庫中,RB造成2 FK:

  • index_foreignkey_game_team
  • index_foreignkey_game_fixture

而且插圖在奧運會後,這段代碼不到風度工作:

$games = R::find('games',"fixture_id='$ID'"); 
foreach($games as $o): 
    echo $o->l->id; // Cannot access to the Local Team 
    echo $o->v->id; // Cannot access to the Visit Team 
endforeach 

謝謝!

+0

我認爲這是東陽領域還沒有得到相同的名稱爲FK表。例如,如果我將球隊重新命名爲「l」,那麼球隊的情況會很好,但我需要有2支球隊,而且我不能有兩個球隊名叫「球隊」。 – mauriblint

回答

1

只需使用一個別名來告訴RedBeanPHP'v'和'l'是什麼。

方法如下:

//for testing only... 
list($team1, $team2) = R::dispense('team', 2); 

$game = R::dispense('game'); 
$game->team = R::load('team',$team1); 
$game->visitor = R::load('team',$team2); 
$id = R::store($game); 
$theGame = R::load('game', $id); 


echo 'team1: '.$theGame->team->id; 
echo PHP_EOL; 
//here I tell RedBeanPHP: visitor IS a team. 
echo 'team2: '.$theGame->fetchAs('team')->visitor->id; 

對於有關別名的詳細信息:http://www.redbeanphp.com/aliasing

希望這有助於!

乾杯, 的Gabor