Comme tu veux créer un article il te faut donc charger tes Rayons et tes categories de façon a part entiére depuis ton controller Article
<?PHP
App::uses('AppController', 'Controller');
Class ArticlesController extends AppController {
function get_rayons($params = null){
if($params == null){
$params = array();
}
$this->loadModel('Rayon');
return $this->Rayon->find('all',$params); //tu charge tes Rayon, tu enléve la recursivité
}
function get_categories($params = null){
if($params == null){
$params = array();
}
$this->loadModel('Category');
//chargement simple tu peut aussi utiliser le find list pour générer un input aprés tous est indiqué dans la doc Cake
return $this->Category->find('all',$params); //tu charge tes categories, tu enléve la recursivité
}
function index(){ //correspond à ta vue actuelle
$this->set('Categories', $this->get_categories());
$this->set('Rayons', $this->get_rayons());
}
}
?>
Ensuite c'est a toi de gérer dans ta vue comment tu veux créer ton article tu peut faire une liste déroulante avec le rayon et une autre avec la categories etc... Perso je préfére les sélections au clique avec des inputs caché pour stocker les données.
Depuis ton controller pour la sauvegarde de l'article du save() tes datas avec ton category_id et tu loadModel('Category') pour y enregistrer ton rayon_id.
Si par contre tes rayons ont des categories que tu définis toi même à l'avance du peut faire une requête ajax quand tu clique sur on rayon pour charger les categories qui y corresponde.