"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सिद्धांत में लेफ्ट जॉइन के दौरान \"अपेक्षित सिद्धांत\\ORM\\Query\\Lexer::T_WITH, मिली \'ON\'\" त्रुटि को कैसे हल करें?

सिद्धांत में लेफ्ट जॉइन के दौरान \"अपेक्षित सिद्धांत\\ORM\\Query\\Lexer::T_WITH, मिली \'ON\'\" त्रुटि को कैसे हल करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:313

How to Resolve the \

सिद्धांत में लेफ्ट जॉइन कैसे करें

जटिल डेटा मॉडल के साथ काम करते समय, उनके बीच संबंध स्थापित करके कई तालिकाओं से डेटा पुनर्प्राप्त करना आवश्यक हो जाता है। लेफ्ट जॉइन आपको एक टेबल से सभी पंक्तियाँ और दूसरी टेबल से केवल मेल खाने वाली पंक्तियाँ लाने की अनुमति देता है। निम्न सिंटैक्स त्रुटि:

[सिंटैक्स त्रुटि] पंक्ति 0, कॉलम 98: त्रुटि: अपेक्षित सिद्धांत\ORM\Query\Lexer::T_WITH, 'चालू' हो गया

यह त्रुटि तब होती है जब " जॉइन क्लॉज में "WITH" के बजाय ON" का उपयोग किया जाता है। इसे हल करने के लिए, "ON" को "WITH" से बदलें जैसा कि नीचे दिखाया गया है:

$qb->leftJoin('User\Entity\User', 'u', \Doctrin\ORM\Query \Expr\Join::with, 'a.user = u.id')

लेफ्ट जॉइन लागू करना
$qb->leftJoin('User\Entity\User', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.user = u.id')

एक एसोसिएशन के साथ:

यदि आपकी इकाई का उस तालिका के साथ जुड़ाव है जिसमें आप शामिल होना चाहते हैं, तो आप निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

$qb -> चयन करें ('ए', 'यू') ->from('Credit\Entity\UserCreditHistory', 'a') ->leftJoin('a.user', 'u') ->कहां('यू = :उपयोगकर्ता') ->सेट पैरामीटर('उपयोगकर्ता', $उपयोगकर्ता) ->orderBy('a.created_at', 'DESC');

इस मामले में, "Credit\Entity\UserCreditHistory#user" दो संस्थाओं के बीच संबंध का प्रतिनिधित्व करता है।
$qb
    ->select('a', 'u')
    ->from('Credit\Entity\UserCreditHistory', 'a')
    ->leftJoin('a.user', 'u')
    ->where('u = :user')
    ->setParameter('user', $users)
    ->orderBy('a.created_at', 'DESC');
बिना किसी एसोसिएशन के:

यदि कोई एसोसिएशन मौजूद नहीं है, तो आप निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

$qb -> चयन करें ('ए', 'यू') ->from('Credit\Entity\UserCreditHistory', 'a') ->बाएं शामिल हों( 'उपयोगकर्ता\इकाई\उपयोगकर्ता', 'यू', \सिद्धांत\ORM\Query\Expr\जुड़ें::साथ, 'a.user = u.id' ) ->कहां('यू = :उपयोगकर्ता') ->सेट पैरामीटर('उपयोगकर्ता', $उपयोगकर्ता) ->orderBy('a.created_at', 'DESC');

यह क्वेरी दोनों तालिकाओं से रिकॉर्ड पुनर्प्राप्त करती है और निम्न प्रारूप के सरणियों वाला एक परिणाम सेट लौटाती है:
$qb
    ->select('a', 'u')
    ->from('Credit\Entity\UserCreditHistory', 'a')
    ->leftJoin('a.user', 'u')
    ->where('u = :user')
    ->setParameter('user', $users)
    ->orderBy('a.created_at', 'DESC');
सारणी( सारणी( 0 => UserCreditHistory उदाहरण, 1 => उपयोगकर्ता उदाहरण, ), सारणी( 0 => UserCreditHistory उदाहरण, 1 => उपयोगकर्ता उदाहरण, ), // ... )

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3