モデルが正しく関連付けられていると仮定します。これらは、同様の状況で使用するコード行です。habtm 条件でフィルタリングする場合、最も制限の厳しいフィルターを持つモデル (またはデータベースを最も速く検索するモデル) から始めると役立つことがわかりました。この場合は地域です。
Safari コントローラから:
$conditions = array('conditions' => array('Region.id' => 'yourRegion', 'Safari.duration' => 5);
$this->Safari->Region->recursive = 1;
$safaris = $this->Safari->Region->find('all', $conditions);
次に、print_r($safaris) を実行し、ネストされた領域配列を介して各サファリにアクセスできるようにする必要があります。すなわち:
$safaris['Region'][0]['Safari'][0]['name']
これにより、条件に一致する最初に関連付けられた最初のリージョンが返されます。print_r($safaris) を使用してデータ構造をよく見ると、私の言いたいことがわかるでしょう。