我正在尝试使用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的替代品,使其尽可能简单和优雅。
答案 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)