题
我如何在CakePHP中执行此操作:
我正在使用具有多对多关系的两个表( regions
和 safaris
)。这些表由另一个名为 regions_safaris
的表连接(字段为 region_id
& safari_id
)。我想获取满足给定条件的所有 safaris
,例如5天的持续时间和给定的区域。这应该在CakePHP中实现
解决方案
拒马河,
请拒绝多次发布。
有关详细参考,请参阅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
}
不隶属于 StackOverflow