Doctrine 复杂条令查询表单验证帮助!

Doctrine 复杂条令查询表单验证帮助!,doctrine,symfony-1.4,Doctrine,Symfony 1.4,我试图检查表单验证中是否不存在跨越五列的条目组合(我有parent1、parent2、parent3、parent4和parent5,它们都是整数)。 我试过: ……等等。 可能不是最有效的方法,但不管它在其中一个值与数据库中已有的任何列匹配时抛出错误,它都不会检查实际的组合。。。 任何帮助都将不胜感激 那么 // Set of possible matches $set = array($values['parent1'], $values['parent2'], $values['paren

我试图检查表单验证中是否不存在跨越五列的条目组合(我有parent1、parent2、parent3、parent4和parent5,它们都是整数)。 我试过:

……等等。 可能不是最有效的方法,但不管它在其中一个值与数据库中已有的任何列匹配时抛出错误,它都不会检查实际的组合。。。 任何帮助都将不胜感激

那么

// Set of possible matches
$set = array($values['parent1'], $values['parent2'], $values['parent3'], $values['parent4'], $values['parent5']);

// Let's make it two-dimensional for simpler DQL syntax
$sets = array($set, $set, $set, $set, $set);

// Multiple WHERE IN AND
$query = Doctrine_Query::create()
->select('m.id', 'm.name')
->from ('Mix m')
->where('m.parent1 IN ? AND m.parent2 IN ? AND m.parent3 IN ? AND m.parent4 IN ? AND m.parent5 IN ?', $sets);

和中的
应确保每个值都匹配。但是,至少有一个失败案例会出现在脑海中,即如果$set中的多个值相同(例如“5、5、1、4、1”),则查询将给出错误匹配。也许其他人可以改进这一点。这可能也是一个缓慢的查询。

谢谢Tom-我编写了另一个函数来验证答案是否不重复并且工作正常。
// Set of possible matches
$set = array($values['parent1'], $values['parent2'], $values['parent3'], $values['parent4'], $values['parent5']);

// Let's make it two-dimensional for simpler DQL syntax
$sets = array($set, $set, $set, $set, $set);

// Multiple WHERE IN AND
$query = Doctrine_Query::create()
->select('m.id', 'm.name')
->from ('Mix m')
->where('m.parent1 IN ? AND m.parent2 IN ? AND m.parent3 IN ? AND m.parent4 IN ? AND m.parent5 IN ?', $sets);