2014-06-27 12 views
5

के बजाय स्ट्रिंग मान के साथ खंड में शामिल हों मेरे पास Eloquent में क्लॉज में शामिल होने के बारे में कोई प्रश्न है, और आप टेबल कॉलम के बजाय स्ट्रिंग मान पर शामिल हो सकते हैं या नहीं।एलोक्वेंट - कॉलम शीर्षक

मेरे पास एक तालिका 'वर्गीकरण' के माध्यम से तालिका 'गंतव्यों' में अभिभावक/बाल अभिलेखों में शामिल घोंसला वाले सेट से पूछताछ के नीचे दिए गए कोड हैं।

बंद करने में दूसरा $join कथन एक समस्या उत्पन्न करने वाला है; भाषण मानता है कि यह एक कॉलम है, जब मैं वास्तव में t1.parent_type = 'Destination' पर शामिल होना चाहता हूं - यानी, t1.parent_type चाहिए = एक स्ट्रिंग मान, Destination

$result = DB::connection() 
    ->table('destinations AS d1') 
    ->select(array('d1.title AS level1', 'd2.title AS level2')) 
    ->leftJoin('taxonomy AS t1', function($join) { 
     $join->on('t1.parent_id', '=', 'd1.id'); 
     $join->on('t1.parent_type', '=', 'Destination'); 
    }) 
    ->leftJoin('destinations AS d2', 'd2.id', '=', 't1.child_id') 
    ->where('d1.slug', '=', $slug) 
    ->get(); 

क्या ऐसा करने के लिए वाद्य को बल देना संभव है? मैंने 'Destination' को DB::raw('Destination') के साथ बदलने की कोशिश की है लेकिन यह या तो काम नहीं करता है।

कृपया आपको धन्यवाद।

+4

साथ on बदलें अपने ही सवाल का जवाब करने के लिए, समाधान 'उपयोग करने के लिए डीबी है :: कच्चे ("'गंतव्य' ')' - मुझे पहले एकल उद्धरण याद किया गया था! – benJ

+2

तब अपने स्वयं के प्रश्न का उत्तर दें ;-) –

उत्तर

4

DB::raw("'Destination'")

+0

लेखक ने टिप्पणियों में अपने प्रश्नों का उत्तर दिया - आप बस इसे दोबारा पोस्ट कर रहे हैं! – Synchro

+1

@ सिंचो हम्म .. मैंने इसे नहीं देखा। मैंने टिप्पणियों की जांच नहीं की है। वह टिप्पणी करने के बजाए अपने स्वयं के प्रश्न का उत्तर दे सकता था। –

+0

मैंने अपने स्वयं के प्रश्न का उत्तर दिया होगा, लेकिन ऐसा करने के लिए पर्याप्त अंक नहीं हैं;) – benJ

10

एक और सबसे अच्छा तरीका है का उपयोग करते हुए एक ही प्राप्त करने के लिए कोशिश है:

$result = DB::connection() 
    ->table('destinations AS d1') 
    ->select(array('d1.title AS level1', 'd2.title AS level2')) 
    ->leftJoin('taxonomy AS t1', function($join) { 
     $join->on('t1.parent_id', '=', 'd1.id'); 
     $join->where('t1.parent_type', '=', 'Destination'); 
    }) 
    ->leftJoin('destinations AS d2', 'd2.id', '=', 't1.child_id') 
    ->where('d1.slug', '=', $slug) 
    ->get(); 

अपने where

+0

'अपना स्थान बदलें 'कहां' के साथ 'पर'! –

संबंधित मुद्दे