当您查看电影时,我想要显示剧院组织的放映时间(电影时间表)。我可以得到所有的数据只是罚款,但它与每一个MovieTime这样返回剧场数据:检索按剧院分组的电影放映时间:电影 - >放映时间< - CakePHP中的剧院
[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
你可以想像,有重复的与剧院数据一吨。
有没有办法我能得到这个相同的数据,而是让与其中的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在'字段列表'中已知列'Theater.id' – Dave
剧院是我的模型名称,id是主键。我不想通过MovieTime.id进行分组 - 这与我想要的相反。 – Dave
我改变了我的第一个答案,试试。 –