我目前有2个数据库表,一个包含一个节目列表,另一个包含这些节目所在的时间。
所以我在两者之间有一个HAS_MANY关系。
我已经成功地通过HAS_MANY关系完成了电影及与之相关的时间。
我正在努力解决的部分是我要展示有时候反对他们的前10部电影(有些则没有)。下面的代码只是将前10个与他们是否有时间对抗它们无关:
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /category.php?u=$1&limit=$2&page=$3&style=$4 [NC,L]
我正在使用的HAS_MANY关系是:
$films=filmrecord::model()
->findAll(array(
'order' => 'priority',
'limit' => 10
));
foreach ($films as $thefilm) {
array_push($filmListings, array(
'id' => $thefilm->id,
'title' => $thefilm->title,
'url' => $thefilm->url,
'poster_url' => $thefilm->p_url,
'times' => $thefilm->filmtimes
));
}
return filmListings;
我知道我可以简单地输入一个if语句来检查是否设置了$ thefilm-> filmtimes但是理想情况下我想在db点检查以避免在检查之前拔出所有电影。
我有没有办法在findAll中存在关系?
任何指针都会非常感激。
此致 wizzer
答案 0 :(得分:0)
请尝试此解决方案,使用has_many
关系查找所有带有电影时间记录的电影。
'filmtimes' => array(self::HAS_MANY, 'FilmsTimesRecord', 'film_id')
$films=filmrecord::model()->with('filmtimes')->findAll(array('order' => 'priority','limit' => 10));