CakePHP-很难返回一些3级深度的数据



我正在努力学习CakePHP,但我很难获得一些数据。我正在一个网站上追踪曲棍球的统计数据(真实的基本统计数据)。我有5张桌子。

  • 季节(id、date_start、date_end)
  • 游戏(id,date,score_team1,score_team2,team1_id,team2_id,season_id)
  • 团队(id、名称、颜色)
  • 玩家(id,first_name,last_name)
  • players_teams(id、player_id、team_id)

我可以从游戏视图中获得一场比赛的两支球队。我还能够从团队的角度了解一支球队的所有球员。

我需要帮助,弄清楚如何从比赛的角度来吸引一支球队的所有球员。我尝试了很多东西,但似乎都不起作用。从我的比赛角度来看,我很难通过做一些类似$game的事情来吸引一支球队的所有球员,但这并不奏效。我正试着从一场比赛中深入了解一支球队的球员。赛季->比赛->团队1->球员,但我被困在团队1级别。

这是我的一些代码

/cakehp/teams->debug($teams[1])

array(
    'Team' => array(
        'id' => '2',
        'name' => 'Rouge',
        'color' => 'Rouge'
    ),
    'Players' => array(
        (int) 0 => array(
            'id' => '2',
            'first_name' => 'Player2FN',
            'last_name' => 'Player2LN',
            'PlayersTeam' => array(
                'id' => '2',
                'player_id' => '2',
                'team_id' => '2'
            )
        ),
        (int) 1 => array(
            'id' => '4',
            'first_name' => 'Player4FN',
            'last_name' => 'Player4LN',
            'PlayersTeam' => array(
                'id' => '4',
                'player_id' => '4',
                'team_id' => '2'
            )
        )
    )
)

但从游戏细节视图我得到了这个->调试($game):

array(
    'Game' => array(
        'id' => '2',
        'date' => '2012-09-16 19:30:00',
        'score_team1' => '8',
        'score_team2' => '4',
        'team1_id' => '2',
        'team2_id' => '1',
        'season_id' => '1'
    ),
    'Team1' => array(
        'id' => '2',
        'name' => 'Rouge',
        'color' => 'Rouge'
    ),
    'Team2' => array(
        'id' => '1',
        'name' => 'Bleu',
        'color' => 'Bleu'
    ),
    'Season' => array(
        'id' => '1',
        'date_start' => '2012-09-09',
        'date_end' => '2013-04-07'
    )
)

我很确定这是一个模型问题,所以这是我的团队和游戏模型

<?php
    class Game extends AppModel {
        public $name = 'Game';
        public $belongsTo = array(
            'Season',
            'Team1' => array (
                'className' => 'Team',
                'foreignKey' => 'team1_id'
            ),
            'Team2' => array (
                'className' => 'Team',
                'foreignKey' => 'team2_id'
            )
        );
    }
?>
<?php
    class Team extends AppModel {
        public $name = 'Team';
        public $hasAndBelongsToMany = array(
            'Players' =>
                array(
                    'className'              => 'Player',
                    'joinTable'              => 'players_teams',
                    'foreignKey'             => 'team_id',
                    'associationForeignKey'  => 'id'
                )
        );
    }
?>

使用

   $this->Game->recursive=2; 
   $this->Game->find('all');

最新更新