【发布时间】:2010-10-16 11:15:56
【问题描述】:
我正在制作我的第一个 CakePHP 项目(除了我做过的所有教程......)。
我正在为田径运动的教练员和运动员创建一个网站。
现在在我的数据库中,我有一个包含以下字段的用户表:id、用户名、名字、姓氏、电子邮件、密码……
然后我还有另外 2 个包含字段的表:
trainers: id, type_id(sprint, distance, throwing, ...), user_id
运动员:id, type_id(sprint, distance, throwing, ...), user_id, trainer_id
我的教练模型是这样的
<?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'
)
);
}
?>
我的运动员模型是这样的
<?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'
)
);
}
?>
我的用户模型目前是这样的
<?php
class User extends AppModel {
var $name = 'User';
var $belongsTo = array('Usertype');
}
?>
但这显然应该改变,因为当我转到 domain/app/trainers 或 domain/app/athletes 时,我得到了错误:
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]
如此简短的概括:用户要么是教练,要么是运动员,我有一个用户表、一个运动员表和一个教练表。
一名运动员有一名教练和一个模式 一名教练有许多运动员和许多模式...
问题在于用户是一名教练或运动员......,我必须在我的模型中添加什么才能使这项工作发挥作用?我希望我说得足够清楚:s
【问题讨论】: