/ / डॉक्ट्रिन भीतरी क्वेरी सेट पैरामीटर - सिम्फनी, doctrine2

डॉक्ट्रिन इनर क्वेरी सेट पैरामीटर - सिम्फनी, डॉक्ट्रिन 2

मैं एक आंतरिक क्वेरी को निष्पादित करने और सफलता के बिना पैरामीटर सेट करने की कोशिश कर रहा हूं, मुझे हमेशा मिलता है:

अमान्य पैरामीटर संख्या: बाध्य चर की संख्या टोकन की संख्या से मेल नहीं खाती

यह मेरी क्वेरी है:

SELECT i2
FROM MyBundle:Identity i2
INNER JOIN MyBundle:Property\Mapped\Email propertyEmail WITH propertyEmail.identity = i2
INNER JOIN MyBundle:Channel channel WITH propertyEmail.channel = channel
WHERE (
SELECT COUNT(mappedEmail)
FROM MyBundle:Property\Mapped\Email mappedEmail
WHERE mappedEmail.identity = i2
AND mappedEmail.channel = :channel
AND mappedEmail.createdAt <= :dateFrom
) > 0
AND IDENTITY(propertyEmail.channel) <> :channel
AND propertyEmail.createdAt <= :dateFrom
GROUP BY i2

और यह है कि मैं कैसे अधीन के रूप में डाल दिया:

$innerQuery = $queryBuilder->getEntityManager()->createQuery($query)
->setParameters([
"channel" => $channelId,
"dateFrom" => $dateFrom
])
;
$queryBuilder->andWhere($queryBuilder->expr()->notIn($alias, $innerQuery->getDQL()));

वह त्रुटि वापस करें:

अमान्य पैरामीटर संख्या: बाध्य चर की संख्या टोकन की संख्या से मेल नहीं खाती

यदि मैं क्वेरी को एकल क्वेरी के रूप में निष्पादित करता हूं तो सभी सही काम करता है।
सुझाव के लिए धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

मुख्य क्वेरी के मापदंडों को निम्नानुसार लागू करने का प्रयास करें:

$innerQuery = $queryBuilder->getEntityManager()->createQuery($query);

$queryBuilder
->andWhere($queryBuilder->expr()->notIn($alias, $innerQuery->getDQL()))
->setParameters([
"channel" => $channelId,
"dateFrom" => $dateFrom
]);