2014-09-16 3 views
1

Im пытается сделать что-то довольно простое в Propel ORM, которое я просто не могу найти или найти ответ.Propel 1.6 Greater/Less than

В основном у меня есть стол, называемый столбом, и стол, называемый post_history. Каждый раз, когда кто-то делает редактирование сообщения, предыдущая версия сначала сохраняется в post_history.

У меня есть кнопка «отменить» против каждого сообщения, где я просто хочу выбрать последнюю запись post_history для сообщения и вернуть данные сообщения из истории. Чтобы выбрать последнюю историю, которая старше моего сообщения, как я могу выбрать БОЛЬШЕ или МЕНЬШЕ, чем в продвижении?

Если я что-то вроде этого:

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

filterByCreated с «Макс» указано, действительно выбрать последний «post_history», но если вы нажмете отменить снова выбирает ту же запись, потому что максимум, кажется, укажите меньше или равно, а не меньше. Это может потребовать пользовательский запрос? Я думаю, что им не хватает трюка, и я тоже не могу найти ответ. Мой поиск ответа пока не помог.

Любая помощь очень ценится.

ответ

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

The -> где() пункт позволяет указать множество опций, например,>, <, LIKE и т.д. ...