我需要将医院分配到一个组中。我决定通过 habtm 做到这一点。
class FavoriteHospital extends AppModel {
public $actsAs = array('Containable');
...
var $hasAndBelongsToMany = array(
'Hospital' => array(
'className' => 'Hospital',
'joinTable' => 'favorite_hospitals_hospital',
'foreignKey' => 'favorite_hospital_id',
'associationForeignKey' => 'hospital_id',
'unique' => false,
)
);
}
要求将一个组中的医院数量限制为 10 个。所以我将关联设置为 false,因为默认行为只是删除关联。我决定首先测试使用方法添加医院的能力......
public function addHospital($gid, $hid) {
$this->data['Hospital']['id'] = $hid;
$this->data['FavoriteHospital']['id'] = $gid;
if($this->save($this->data)){return true;}
return false;
}
现在,上面正确地添加了关联,这很棒,但是每次我试图找到一种方法来计算现有关联的数量时,我都会碰壁。
上面还有一个次要问题,那就是它也允许重复。