2012-10-06 110 views
1

我有模型Page和Commit。页面有许多提交。 但有时我需要为页面获取最后一次提交,有时需要获取页面提交的历史记录(最后20个或全部)。ActiveRecord&PHP:定义两个模型之间不同关联的最佳方式

我写了模型验证码:

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')); 
} 

所以我需要做的有显示器的机会所有的提交([“限制” => 20]前。)?

回答

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 

这不是一个真正的整体解决方案,但它应该做的伎俩...

+0

这有助于!非常感谢! – mikatakana

相关问题