Propel n'a pas de norme façon de faire des sous-requêtes dans le cadre d'un critère.
Vous pouvez soit séparer votre requête (obtenir d'abord la valeur que vous souhaitez comparer, puis l'utiliser dans la requête d'origine) ou utiliser un CUSTOM
critères avec votre sous-requête dans votre requête propel.
Voici un exemple de la deuxième option :
$c = new Criteria();
$subSelect = "cart.category > (
SELECT cart.category
FROM carts
WHERE carts.id = 3)";
$c->add(CartPeer::CATEGORY, $subSelect, Criteria::CUSTOM);
MODIF : Voici un exemple de la première option
// find the object we want to compare against
$c = new Criteria();
$c->add(CartPeer::ID, 3);
$cart = CartPeer::doSelectOne($c)
// then make the actual criteria
$c = new Criteria();
$c->add(CartPeer::CATEGORY, $cart->getCategory(), Criteria::GREATER_THAN)
Le seul problème avec cette option est que vous faites deux requêtes au lieu d'un, ce qui peut affecter vos performances, mais cela dépend bien sûr de votre application.