我可以在两个模型之间同时使用belongsTo和HABTM(hasAndBelongsToMany)吗? 像这样:
工作模式
Class Job extends AppModel{
public $belongsTo=array(
'User'=> array(
'className' => 'User',
'foreignKey' => 'user_id',
'counterCache'=>true,
'fields'=>array('id','username','role'),
)
);
public $hasAndBelongsToMany=array('User');
public $usetable = 'jobs';
用户模型
Class User extends AppModel{
public $hasAndBelongsToMany=array('Job');
如何根据第一个或第二个上下文检索数据 1-显示公司的所有工作。 2-显示用户适用。
答案 0 :(得分:2)
您可以这样做,但这两个关联需要不同的别名。因此,您可以引用User
申请Job
作为Applicant
: -
class Job extends AppModel {
public $belongsTo = array(
'User'=> array(
'className' => 'User',
'foreignKey' => 'user_id',
'counterCache' => true,
'fields' => array('id', 'username', 'role'),
)
);
public $hasAndBelongsToMany = array(
'Applicant' => array(
'className' => 'User'
)
);
}
请注意,您需要告诉Cake Applicant
通过User
属性使用className
模型。对于您的belongsTo
关联,您不需要为className
指定User
,因为它与模型名称相同,但我已将其保留为了清楚起见。
您也不需要指定$usetable = 'jobs
,因为这是使用正确的命名约定所暗示的。