Je fais mon premier projet CakePHP (mis à part tous les tutoriels que j'ai faits ...).relation spéciale modèle cakephp
Je crée un site pour les entraîneurs et les athlètes dans le sport d'athlétisme.
maintenant dans ma base de données je une table utilisateur avec des champs: id, nom d'utilisateur, prénom, nom, email, mot de passe ...
alors j'ai 2 autres tables avec les champs:
formateurs : id, type_id (sprint, distance, lancer, ...), user_id
athlètes: id, type_id (sprint, distance, lancer, ...), user_id, trainer_id
mon modèle formateur ressemble cette
<?php
class Trainer extends AppModel {
var $name = 'Trainer';
var $hasOne = array('User');
var $hasMany = array(
'Schema'=>array(
'className'=>'Schema',
'foreighnKey'=>'trainer_id'
),
'Athlete'=>array(
'className'=>'Athlete',
'foreighnKey'=>'trainer_id'
)
);
}
?>
mon modèle d'athlète ressemble à ceci
<?php
class Athlete extends AppModel {
var $name = 'Athlete';
var $hasOne = array('User');
var $belongsTo = array(
'Trainer'=>array(
'className'=>'Trainer',
'foreighnKey'=>'trainer_id'
),
'Schema'=>array(
'className'=>'Schema',
'foreighnKey'=>'schema_id'
)
);
}
?>
mon modèle utilisateur est actuellement comme celui-ci
<?php
class User extends AppModel {
var $name = 'User';
var $belongsTo = array('Usertype');
}
?>
mais cela ne doit évidemment changer, parce que quand je vais au domaine/app/formateurs ou domaine/app/athlètes Je reçois l'erreur:
Warning (512): SQL Error: 1054: Unknown column 'User.trainer_id' or 'User.athlete_id' in 'on clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 681]
si court recapitula tion: un utilisateur est un entraîneur ou un athlète, et j'ai une table des utilisateurs, une table des athlètes et une table des entraîneurs.
un athlète a un entraîneur et un schéma d'un entraîneur a beaucoup d'athlètes et de nombreux schémas ...
le problème est à un utilisateur d'être un entraîneur ou un athlète ..., qu'est-ce que je dois mettre dans mes modèles pour faire ce travail? J'espère que je fait ce assez clair: s