Bonjour,
Pour le site que je suis entrain de développer, j'ai besoin d'une configuration comme celle ci :
une table établissement (relation un établissement peut avoir plusieurs serveurs)
une table serveur (relation un serveur peut avoir plusieurs vms)
une table vm
Ce que je veux pouvoir faire c'est que quand je demande les informations d'un établissement, j'ai tous les serveurs de cette établissement et toutes les vms attaché aux serveurs de cette établissement.
Voici le AppModel.php :
class AppModel extends Model {
public $recursive = -1;
public $actsAs = array('Containable');
Voici le model Etab.php :
class Etab extends AppModel{
public $hasMany = 'Server';
}
Voici le model Server.php :
class Server extends AppModel{
public $hasMany = 'Vm';
}
Dans mon EtabController.php :
public function view($id){
$this->Etab->contain('Server');
debug($this->Etab->findById($id));
}
Et voici le resultat obtenu :
array(
'Etab' => array(
'id' => '1',
'rne' => '0XXXYYY',
'name' => 'abcdert',
'nbopsi' => '1',
'nbfusion' => '0',
'passwordspr' => '',
'content' => 'SITE FULL UHS3
Proposition d'amélioration :
1, Demande de NAS 3*2T
2, Libérer espace hostc en orientant les backups vers le NAS
3, Equilibrer les services entre hostb et hostc afin de pouvoir agrandir le CTRLR
4, Migrer hostd sur hosta afin de supprimer le nec du site'
),
'Server' => array(
(int) 0 => array(
'id' => '1',
'name' => 'hosta0XXXYYY',
'type' => 'T310',
'ram' => '4G',
'volumetrie' => '143G;68G;/dev/sda : 160G;/dev/sdb : 160G',
'backup' => 'hostc0451483t',
'etab_id' => '1'
),
(int) 1 => array(
'id' => '2',
'name' => 'hostb0XXXYYY',
'type' => 'T610',
'ram' => '6G',
'volumetrie' => '947G;24G;/dev/sda : 1023G',
'backup' => 'hostc0451483t',
'etab_id' => '1'
)
)
)
Ma question est donc comment j'ajoute le tableau des vms dans le tableau des servers ?
Cordialement
Voici la réponse :
$etabs = $this->Etab->find('first', array(
'conditions' => array('id' => $id),
'contain' => array('Server' => 'Vm')
));