$data = array(
'ModelA' => array('name' => "nom"),
'ModelB' => array(
array('mail' => "test1"),
array('mail' => "test2"),
array('mail' => "test2"),
),
);
$this->ModelA->saveAssociated($data, array('deep' => true)); //Ne save que le ModelA
$this->ModelA->ModelB->saveAssociated($data, array('deep' => true)); //Ne save rien du tout
Je ne vois pas comment faire un saveAssociated() avec des HABTM...
Et le problème avec saveAssociation, enfaite, c'est que c'est surtout pour les cas où tu sauvegarde tout d'un coup, ce qui n'est pas mon cas puisque je fais beaucoup d'operations en même temps et surtout en plusieurs étapes(..., créations d'un ModelA, ..., ..., créations des ModelB puis relations)
Mais si on part par exemple avec un saveAll
$data = array(
0 => array(
"ModelA" => array(
"id" => 1
),
"ModelB" => array(
"mail" => "test1"
)
),
1 => array(
"ModelA" => array(
"id" => 1
),
"ModelB" => array(
"mail" => "test2"
)
),
2 => array(
"ModelA" => array(
"id" => 1
),
"ModelB" => array(
"mail" => "test2"
)
)
);
$this->ModelA->create(array(
'name' => "nom"
));
$this->ModelA->save();
$this->ModelA->ModelB->create();
$this->ModelA->ModelB->saveAll($data);
Donc avec 3 enregistrements de ModelB, dont 2 identiques
Je me retrouve avec le problème où je veux que lorsqu'il y a 2 identiques, au lieu de créer 2 ModelB : 1 seul est créé mais 2relations les lient, ce qui est la seule raison d'un HABTM
Ce que n'est pas le cas avec un saveAll, 2 ModelB se créait
Et lorsque j'indique une regles isUniq dans le ModelB, plus rien s'enregistre
//Que ce soit :
public $validate = array(
'mail' => array(
'rule' => 'isUnique'
)
);
//Ou :
public $hasAndBelongsToMany = array('ModelA' => array('unique' => true));