推进1.6大于/小于

时间:2014-09-16 08:44:13

标签: mysql propel

我试图在Propel ORM中做一些非常简单的事情,我似乎无法解决或找到答案。

基本上我有一个名为post的表和一个名为post_history的表。每当有人对帖子进行编辑时,先前的版本将首先保存到post_history。

我有一个'撤消'每个帖子的按钮,我只想选择最后一个帖子'记录帖子并从历史记录中恢复帖子数据。要选择比我的帖子旧的最后一个历史记录,如何选择GREATER或LESS而不是推进?

如果我这样做:

$postHistory = PostHistoryQuery::create()
                ->filterByPostId($post->getId())
                ->filterByCreated(array("max" => $post->getUpdated()))
                ->orderById("DESC")
                ->limit(1);

filterByCreated with' max'指定确实选择了最后一个'post_history'但如果再次单击“撤消”,则会选择相同的记录,因为最大值似乎指定小于或等于而不是小于。它可能需要自定义查询?我想我错过了一个我无法找到答案的技巧。到目前为止,我对答案的搜索并没有帮助。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

好的,所以我在SO上发布了一个问题寻求帮助,并在30分钟内通过尝试来解决问题。典型的,嗯?这可能对其他人有用,所以这就是我所做的:

$postHistory = PostHistoryQuery::create()
                ->filterByPostId($post->getId())
                ->filterByCreated(array("max" => $post->getUpdated()))
                ->orderById("DESC")
                ->limit(1);

更改为:

$postHistory = PostHistoryQuery::create()
                ->filterByPostId($post->getId())
                ->where('post_history.created < ?', $post->getUpdated())
                ->orderById("DESC")
                ->limit(1);

- &gt; where()子句允许您指定许多选项,例如&gt;,&lt;,LIKE等......