我正在努力学习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');