解決策は単純で、Containableの動作と関係があるかもしれませんが、機能させることはできません。すべての試みなしで
これが事実です。イベント(会議など)のイベントの詳細を表示したいのですが。各イベントはEventVenueで行われ、各EventVenueは国にあります。
したがって、国モデルには次のものがあります。
public $hasMany = array(
'EventVenue' => array(
'className' => 'EventVenue',
'foreignKey' => 'country_id'
))
EventVenueモデルでは、BelongsToアソシエーションが作成されます
public $belongsTo = array(
'Country' => array(
'className' => 'Country',
'foreignKey' => 'country_id'
))
そして、イベントモデルでは、hasOneアソシエーションが作成されます
public $hasOne = array(
'EventVenue' => array(
'className' => 'EventVenue',
'foreignKey' => 'event_id',
))
私が欲しいのは、EventsControllerでレンダリングされるページに国名を表示することです。すべてのEventおよびEventVenueデータを取得しましたが、会場に関連付けられた国が取得されません。
データは次の方法で取得されます
$item = $this->Event->findBySlug($slug);
データベースから国名(オランダなど)を取得するにはどうすればよいですか?私はこのようなことを試しましたが、うまくいきませんでした:
$item = $this->Event->findBySlug($slug,array(
'contain' => array(
'Event' => array(
'EventVenue' => array(
'Country'
)
)
)
)