Джума,
Пожалуйста, воздержитесь от публикации так быстро.
Для получения дополнительной информации, пожалуйста, смотрите отношения Cakebook Has-And-Belongs-To-Many. Это именно то, что вы описываете. Смотри http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
Короче говоря, если вы правильно настроили модели Cake (с установленным отношением HABTM между регионами, сафари и регионами; проверьте индекс 'joinTable' в массиве var $ hasAndBelongsToMany в моделях), вы сделаете это :
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
}