我有模型页面和提交。 Page有很多提交。 但有时我只需要为页面提供最后一次提交,有时需要获取页面提交的历史记录(最后20次或全部提交)。
我为模型编写了这段代码:
class Page extends ActiveRecord\Model {
static $has_many = array(
array('commits',
'select'=> 'content',
'order' => 'id DESC',
'limit' => 1
));
}
class Commit extends ActiveRecord\Model {
static $belongs_to = array(
array('page'));
}
那么我需要做些什么才能有机会显示所有提交(['limit'=> 20]为ex。)?
答案 0 :(得分:0)
这是一个解决方法,但是应该这样做......有点模仿Rails中的范围:
class Page extends ActiveRecord\Model {
static $has_many = array(
array('limited_commits',
'class_name' => 'Commit',
'select'=> 'content',
'order' => 'id DESC',
'limit' => 1
),
array('all_commits',
'class_name' => 'Commit',
'select' => 'content',
'order' => 'id DESC'
)
);
}
class Commit extends ActiveRecord\Model {
static $belongs_to = array(
array('page'));
}
然后只需使用您需要的“范围”:
Page::first->limited_commits
Page::first->all_commits
这不是一个真正的整体解决方案,但应该可以解决这个问题......