まず第一に、これが単純すぎるように聞こえたら申し訳ありません。ちなみに私はcakePHPを初めて使用します。
私の目的は、テーブルを介してリンクされているteam_id
inコントローラーを拡張することです。season
standings
私の現在のモデルルールは次のとおりです。
- 毎シーズン多くの順位があります
- 各順位はチームを示します。
- 基本的に、シーズンとチーム=順位の間の多対多の関係です。
これが私のSeasonControllerです。
class SeasonsController extends AppController
{
public $helpers = array('Html', 'Form');
public function view($id)
{
$this->Season->id = $id;
$this->set('season', $this->Season->read());
}
}
を介して単一のシーズンを閲覧する/cakephp/seasons/view/1
と、$season
配列は次のように表示されます。
Array
(
[Season] => Array
(
[id] => 1
[name] => English Premier League 2013/2014
[start] => 1350379014
[end] => 0
)
[Standing] => Array
(
[0] => Array
(
[id] => 1
[team_id] => 1
[win] => 1
[lose] => 0
[draw] => 1
[GF] => 5
[GA] => 4
[season_id] => 1
[rank] => 1
)
[1] => Array
(
[id] => 2
[team_id] => 2
[win] => 0
[lose] => 1
[draw] => 1
[GF] => 4
[GA] => 5
[season_id] => 1
[rank] => 2
)
)
)
結果はを示しているだけteam_id
ですが、どうすればさらに拡張できteam_id
ますか?
チームのモデルに以下を入れましたが、それでも自動リンクされません。以下は私のすべてのモデルです:
class Team extends AppModel
{
public $name = 'Team';
public $hasMany = array(
'Standing' => array(
'className' => 'Standing'
));
}
class Season extends AppModel
{
public $name = 'Season';
public $hasMany = array(
'Standing' => array(
'className' => 'Standing'
));
}
class Standing extends AppModel
{
public $name = 'Standing';
public $belongsTo = array(
'Team' => array(
'className' => 'Team',
'foreignKey' => 'team_id',
),
'Season' => array(
'className' => 'Season',
'foreignKey' => 'season_id',
),
);
}