たとえば、組織に多くの部門があり、部門に多くの人がいるような構造を実現したいと思います。
モデル構造を次のように設定しました。
組織
<?php
class Organisation extends AppModel {
public $hasMany = array(
'Department' => array(
'className' => 'Department',
'foreignKey' => 'organisations_id'
)
);
}
部門
<?php
class Department extends AppModel {
public $hasMany = array(
'Person' => array(
'className' => 'Person',
'foreignKey' => 'departments_id'
)
);
}
人
<?php
class Person extends AppModel {
}
それから私はこのようなコントローラーを持っています:
<?php
class OrganisationsController extends AppController {
public $helpers = array('Html', 'Form', 'Session');
public $components = array('Session');
public function index() {
$this->set('organisations', $this->Organisation->find('all'));
}
}
$ Organizationsを印刷すると、次のような配列が得られます。
Array
(
[0] => Array
(
[Organisation] => Array
(
[id] => 1
[created] => 2013-01-03 16:02:47
)
[Department] => Array
(
[0] => Array
(
[id] => 1
[created] => 2013-01-03 16:02:47
[organisations_id] => 1
)
)
)
)
私はPHPとCakePHPの両方に不慣れですが、Person配列がOrganization配列に含まれることを期待しませんか?そうでない場合は、上記のような構造を実現する別の方法がありますか([組織]->[部門]->[個人])?
これについてのヒントは大歓迎です!:)