在php-activerecord中按关系查找

时间:2013-03-23 21:49:14

标签: php activerecord phpactiverecord

我正在尝试使用php-activerecord进行项目 - 我以前在Lithium和CodeIgniter中使用过它 - 但是我坚持认为应该很容易。但我根本无法绕过它。

所以,我有两张桌子:

post       |id  |title  |content
           ----------------------
           |1   |Test   |Lorem...

和:

post_meta  |id  |post_id  |publish_date
           ----------------------------
           | 1  |1        |2013-03-23

现在,如果我想匹配post表中的title和post_meta表中的publish_date,我将如何以最简单和最优雅的方式进行匹配?

现在看来我似乎必须做两个单独的查询,首先在元表中用正确的publish_date提取帖子 - 然后循环遍历那个,直到找到匹配的标题。或者我可以使用关系($has_one$belongs_to) - 但是当我想要提取我的后期数据时,感觉就像我正在做“其他方式”($postMetas->post->content )。

随意提出想法和解决方案 - 甚至是ORM的替代品,使其尽可能简单和优雅。

1 个答案:

答案 0 :(得分:2)

您可以在取景器中使用连接结构。查看this part of the manual

基本上,它表示您可以使用已知连接进行连接,并将其用作返回内容的基础。该页面上的书籍示例非常好,请参阅:

# fetch all books joining their corresponding author
 7 $book = Book::all(array('joins' => array('author')));
 8 # sql => SELECT `books`.* FROM `books`
 9 #      INNER JOIN `authors` ON(`books`.author_id = `authors`.id)