2013-05-27 3 views
0

RedBeanPHP의 최신 버전을 사용하고 있습니다. 저는 축구 용기구 구조를 모델링하고 있습니다. 단일 게임, 2 팀이 수행하고 있으며 단일 게임 데이 (데이터베이스의 조명기)에 속합니다.RedBeanPHP 동일한 테이블에 여러 FK가 있습니다

$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 
: index_foreignkey_game_fixture

그리고 삽입 된 게임 후는,이 코드는 작업을 dosn't

    • index_foreignkey_game_team : 데이터베이스에서
      $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를 생성

      고마워!

  • +0

    나는 분야가 FK 테이블과 같은 이름이 없어 beacause를 생각은 해요. 예를 들어, "l"필드의 이름을 "team"으로 바꾸면 2 개의 팀이 있어야하며 "team"이라는 두 개의 필드가 있어야합니다. – mauriblint

    답변

    1

    RedBeanPHP에 'v'와 'l'이 무엇인지 알리기 위해 별칭을 사용하기 만하면됩니다. 여기

    이 방법이 도움이 http://www.redbeanphp.com/aliasing

    희망 : 앨리어싱에 관한 자세한 내용은

    //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; 
    

    !

    건배, 가보