映画を見るときに、劇場主催の上演時間(movie_timesテーブル)を表示します。私はちょうど罰金、すべてのデータを取得することができますが、それはこのようなEVERY MovieTimeとシアターデータを返します:劇場でグループ化された映画の上映時間を取得する:ムービー - >上映時間<CakePHPの-Theater
[0] =>
[Movie] =>
[name] => Herp de Derp
[MovieTime] =>
[0] =>
[datetime] => 2011-07-06 18:30:00
[Theater] =>
[name] => Awesome Cinemas
[address] => 1234 Street Ln
[1] =>
[datetime] => 2011-07-06 20:30:00
[Theater] =>
[name] => Awesome Cinemas
[address] => 1234 Street Ln
[2] =>
[datetime] => 2011-07-06 20:30:00
[Theater] =>
[name] => Crappy Movies 10
[address] => 678 Avenue St
あなたが想像できるように、劇場用データとの重複のTONがあります。
私はこの同じデータを取得することができます方法はありますが、その代わりに、このようなことの中movie_timesでグループ化された劇場用データが
[0] =>
[Movie] =>
[name] => Herp de Derp
[Theater] =>
[0] =>
[name] => Awesome Cinemas
[address] => 1234 Street Ln
[MovieTime] =>
[0] =>
[datetime] => 2011-07-06 18:30:00
[1] =>
[datetime] => 2011-07-06 20:30:00
[2] =>
[datetime] => 2011-07-06 22:30:00
[1] =>
[name] => Awesome Cinemas
[address] => 1234 Street Ln
を?:取得私の団体は、以下の通りである:
Movie hasMany MovieTime
MovieTime belongsTo Movie
Theater hasMany MovieTime
MovieTime belongsTo Theater
ご覧のとおり、映画と劇場の間には直接のリンクはありません。MovieTime
を使用しています。アソシエーションは(私にとっては少なくとも)論理的に意味がありますが、それらを別の(しかし論理的な)設定に変更しなければならないと、私は確かにそれを聞いています。
私は現在、私のデータを取得するために、これを使用しています:
$data = $this->find("first", array(
'conditions' => array(
array('Movie.slug' => $slug)
),
'fields' => array('id', 'name', 'slug', 'url', 'runtime'),
'contain' => array(
'MovieTime' => array(
'fields' => array('datetime', 'screen_number'),
'Theater' => array(
'fields' => array('id', 'slug', 'name', 'address', 'phone'),
'City' => array(
'fields' => array('id', 'name', 'st')
),
),
),
),
)
);
、私が手:U nknown列 'field.id' in 'field list' – Dave
劇場は私のモデル名で、idは主キーです。私はMovieTime.idでグループ化したくないです - それは私が望むものの反対です。 – Dave
私は最初の答えを変えて、それを試してみてください。 –