Bonjour à tous,

J'ai actuellement une table users dans laquelle je souhaite avoir 4 différents types d'utilisateurs (admin, tech, client et user). J'ai ensuite une autre table dans laquelle j'ai 3 clé étrangères : client_id, tech_id, user_id qui pointe tout les 3 vers la table users.

Dans ma vue, j'ai simplement 3 différentes liste déroulante qui liste les différents utilisateurs (une pour chaque type d'utilisateur)

Comment faire dans Cake pour ensuite associé ces clés aux différents utilisateurs lors de la lecture comme le ferai un belongsTo par exemple?

J'espère avoir été clair ;)

Merci d'avance à tous

6 réponses


karmalo
Réponse acceptée

ok, je vois ce que tu veux dire, j'ai déjà fait ca.

public $belongsTo = array(
        'tech' => array(
            'className' => 'User',
            'foreignKey' => 'tech_id'
        ),
        'client' => array(
            'className' => 'User',
            'foreignKey' => 'client_id'
        )
    );

salut

Qu'est-ce que tu as mis dans tes models? tu peux utiliser hasMany dans ton model User

kal-el
Auteur

Ben en fait, c'est là que je ne comprends pas comment faire. J'ai une table user ou seront stocké tous les différents "types" (rôle) utilisateurs. Donc je n'ai qu'un model User. Lorsque j'affiche mes listes déroulante dans les vues, je sélectionne les clients en fonction du rôle qu'ils ont (de même pour les autres compte) :

<?php
    public function getClients(){
        $d = $this->User->find('all', array(
            'conditions' => array(
                'role' => 'client'
            )
        ));
    }
?>

En fait, j'aurai voulu savoir s'il y avait une méthode sous Cake permettant de liée un model avec lui-même. Car ça peut être un peu lourd de faire à chaque fois une requête pour les lier entre eux.

kal-el
Auteur

Thank you mec, c'est exactement ça. Merci encore

de rien, avec plaisir, je suis une femme sinon !!!!

kal-el
Auteur

Oups pardon, je ne savais pas ;). Je peux t'invité à prendre un verre pour m'excuser :) !?
Merci a+