CakePHP-返回一些3级深度的数据很困难
我正在努力学习CakePHP,我很难获得一些数据。 我正在一个网站上跟踪曲棍球统计数据(真实的基本统计数据)。我有五张桌子CakePHP-返回一些3级深度的数据很困难,cakephp,Cakephp,我正在努力学习CakePHP,我很难获得一些数据。 我正在一个网站上跟踪曲棍球统计数据(真实的基本统计数据)。我有五张桌子 季节(id、开始日期、结束日期) 比赛(id、日期、得分团队1、得分团队2、团队1、团队2、赛季id) 团队(id、姓名、颜色) 玩家(id、名字、姓氏) 球员与球队(id、球员id、球队id) 我可以从游戏视图中得到一场游戏的两支球队。 我还能够从团队视图中获取一个团队的所有球员 我需要帮助找出如何从比赛的角度让一支球队的所有球员上场。 我试了很多东西,但似乎都不管用
- 季节(id、开始日期、结束日期)
- 比赛(id、日期、得分团队1、得分团队2、团队1、团队2、赛季id)
- 团队(id、姓名、颜色)
- 玩家(id、名字、姓氏)
- 球员与球队(id、球员id、球队id)
<?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');
谢谢工作起来很有魅力!我知道这是可行的,但对于大量数据来说,这不是效率低下吗?遏制行为会更好吗?是的。这取决于数据库的设置方式,但如果模型有点复杂,则会导致性能下降。我总是尝试实现contain,但是递归有一个很大的优势,就是它是一个单行程序。适合快速开发、小数据、简单模型。最后,我相信contain是必要的,但是当Pureconstant更熟悉框架时,它就可以实现了。
<?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');