Im nouveau à cakePHP et tout le concept de relations de table est très confus!table cakePHP joignant deux tables numéro
J'ai 2 tables, compétences et compétencesRatings. compétences stocke une liste de noms avec des identifiants.
competencies
------------
id
name
Et les utilisateurs peuvent sélectionner différentes compétences de cette table et les évaluer et leurs évaluations sont stockées dans la table competencesRatings.
competenceRatings
-----------------
id
competence_id
user_id
rating
Je veux être en mesure d'obtenir les noms des compétences pour lesquelles un utilisateur a fait aucune note dans la table des competenceRatings. c'est-à-dire que j'ai besoin d'une liste de noms de la table des compétences pour laquelle il n'y a pas d'entrées dans la table comptenceRatings (pour user_id donné).
J'ai essayé compétences-> hasMany-> competencesRatings, competencesRatings-> belongsTo-> compétences relations.
$competencies = $this->Competence->CompetenceRating->find('all',array('CompetenceRating.user_id' => $userId,'CompetenceRating.competence_id !=' => 'Competence.id'));
Mais pas d'utilisation!
Ce résultat nécessite-t-il d'autres relations? Ou puis-je simplement joindre des tables en utilisant la condition des jointures dans la requête de recherche?
Merci.
EDIT
Cette méthode a fonctionné:
$options['joins'] = array(
array(
'table' => 'competence_ratings',
'alias' => 'CompetenceRating',
'type' => 'LEFT OUTER',
'conditions' => array(
'Competence.id = CompetenceRating.competence_id',
'CompetenceRating.user_id' => $userId
)
)
);
$options['conditions'] = array('CompetenceRating.competence_id'=> null);