我的查询有问题:
我有一个带有“sections”的表和另一个带有多对多的SectionCountryException的表,其中只有我不希望出现的国家/地区的值。
让我解释一下:我有很多部分,我想在某些国家/地区不提供某些部分。
现在我在Section Table中有这个dql:
$dql = $this->createQuery('se')
->leftJoin('se.SectionCountryExceptions sce')
->whereNotIn('sce.value',$countryCode)
->orderBy....
但我知道这不对,但不知道怎么做......
感谢
答案 0 :(得分:0)
我自己回答......
$dql = $this->createQuery('se') ->andWhereNotIn('se.id', $this->getExceptionsArray());
和功能:
private function getExceptionsArray() { $countryCode = sfConfig::get('app_default_country_code'); $sectionCountryExceptions = Doctrine::getTable('SectionCountryException')->findByValue($countryCode); $exceptions = array(); foreach ($sectionCountryExceptions as $exception) { $exceptions[] = $exception->getSection()->getId(); } return $exceptions; }