我如何在CakePHP中执行此操作:
我正在使用具有多对多关系的两个表(regions
和safaris
)。这些表由另一个名为regions_safaris
的表(包含字段region_id
& safari_id
)连接在一起。我想获取满足给定条件的所有safaris
,例如5天的持续时间和给定区域。这应该在CakePHP中实现
答案 0 :(得分:2)
拒马河,
请拒绝多次发布。
有关详细参考,请参阅Cakebook Has-And-Belongs-To-Many关系。这正是你所描述的。见http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
简而言之,假设你正确设置了Cake模型(在区域之间建立了HABTM关系,safaris和regions_safaris;检查var $ hasAndBelongsToMany数组中的'joinTable'索引,在模型中),你会这样做:
class SafariModel extends AppModel
{
var $name = 'Safari';
var $hasAndBelongsToMany = array( 'Tag'=>array( ..., 'joinTable'=>'regions_safaris', ... );
function findSafaris( $duration = 5, $region = null )
{
return $this->find('all', array('conditions'=>array('Region.region_name'=>$region, 'Safari.duration'=>$duration) );
}
... // rest of class
}