od dłuższego czasu walczę z pewnym problemem i nie mogę sobie poradzić. Otóż mam taki kod:
<?php $c = new Criteria(); $c->add(sfGuardUserPeer::IS_ACTIVE, false); $c->addAsColumn('timediff', 'TIME_TO_SEC(TIMEDIFF(NOW(), created_at))'); $c->getNewCriterion(sfGuardUserPeer::ID, 'timediff > '.sfConfig::get('app_time_expired_user'), Criteria::CUSTOM); $c->addAscendingOrderByColumn(sfGuardUserPeer::USERNAME); $users = sfGuardUserPeer::doSelect($c); ?>
W rezultacie chciałbym otrzymać takie zapytanie:
SELECT id, username, is_active, TIME_TO_SEC(TIMEDIFF(NOW(), created_at)) AS timediff FROM sf_guard_user WHERE timediff>86400 AND is_active=0 ORDER BY username;
Co bym jednak nie zrobił to zawsze otrzymuję powyższe zapytanie ale bez warunku timediff>86400... W sumie nie jestem pewien pierwszego parametru w $c->getNewCriterion().
Czy mógłbym prosić o pomoc w rozwiązaniu tego problemu?
PS: przy okazji: w jaki sposób można podejrzeć tworzone zapytanie (poprzez echo, nie w debugerze). echo $c, echo $c->__toString() nie działa...