CakePHPで追加の条件を提供しながら、HABTM関係に基づいてテーブルをクエリするにはどうすればよいですか?
-
03-07-2019 - |
質問
CakePHPでこれを行うには:
多対多の関係を持つ2つのテーブル( regions
と safaris
)を使用しています。テーブルは、 regions_safaris
と呼ばれる別のテーブル(フィールド region_id
& safari_id
を持つ)に結合されます。 5日間の期間など、特定の地域で特定の基準を満たすすべての safaris
を取得します。これはCakePHPで実装する必要があります
解決
juma、
複数回の投稿はすぐに中止してください。
詳細については、Cakebook Has-And-Belongs-To-Manyの関係をご覧ください。それはまさにあなたが説明していることです。 http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTMを参照してください
要するに、Cakeモデルが正しくセットアップされていると仮定すると(HABTM関係がregion、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