2014-10-13 11 views
7

नहीं है मैं फ्रोजनोडोड से लैरावेल प्रशासक पैकेज का उपयोग कर रहा हूं। लंबी कहानी छोटी है, मैं नरम हटाए गए परिणामों को प्रदर्शित करते समय मुद्दों में भाग रहा हूं। मैं डिफ़ॉल्ट क्वेरी ओवरराइड करने के लिए कोशिश कर रहा हूँ:लैरवेल एलोक्वेंट या जहां

select * from `scripts` where `scripts`.`deleted_at` is null group by `scripts`.`id` 

दोनों को नष्ट कर दिया परिणामों को प्रदर्शित करने के लिए और गैर नष्ट कर दिया, किसी भी तरह दूर हैकिंग। यह सबसे सुरुचिपूर्ण समाधान नहीं है लेकिन मुझे ऐसा करने का कोई और तरीका नहीं दिख रहा है। तो, मेरा लक्ष्य यह करने के लिए है:

select * from `scripts` where `scripts`.`deleted_at` is null or `scripts`.`deleted_at` is not null group by `scripts`.`id` 

दुर्भाग्य से मैं साथ orWhere() का उपयोग करने के लिए कैसे पता नहीं है 'अशक्त नहीं है।' थोड़ा शोध करने के बाद, मैं इसे एक कच्चे एसक्यूएल ब्लॉक के साथ करने की कोशिश की, इस तरह:

'query_filter'=> function($query) { 
    $query->orWhere(DB::raw('`scripts`.`deleted_at` is not null')); 
}, 

लेकिन मैं दूसरे() orWhere में पैरामीटर शामिल नहीं की जिसके परिणामस्वरूप एसक्यूएल का एक अतिरिक्त टुकड़े के साथ समाप्त हो गया:

select * from `scripts` where `scripts`.`deleted_at` is null or `scripts`.`deleted_at` is not null **is null** group by `scripts`.`id` 

मैं इसे कैसे ठीक कर सकता हूं?

उत्तर

15

बस withTrashed जोड़ें:

'query_filter'=> function($query) { 
    $query->orWhereNotNull('deleted_at'); 
}, 
+1

दुर्भाग्य से यह काम नहीं करता है। मुझे अपरिभाषित विधि पर कॉल मिल रहा है \ डेटाबेस \ क्वेरी \ Builder :: withTrashed() त्रुटि। – Anonymous

0

y हैं:

'query_filter'=> function($query) { 
    $query->withTrashed(); 
}, 

Source

अद्यतन

उस मामले में, आप शायद सिर्फ एक orWhereNotNull() कॉल जोड़ सकते हैं कहां हटाए गए रिकॉर्ड (सॉफ्ट हटाए गए रिकॉर्ड) को खोजना चाहते हैं, उपयोगकर्ता को स्पष्ट मॉडल क्वेरी नहीं है।
इसके बजाय का उपयोग Db::table query
, उदा,
बजाय नीचे का उपयोग करने का:

$stu = Student::where('rollNum', '=', $rollNum . '-' . $nursery)->first();

उपयोग

$stu = DB::table('students')->where('rollNum', '=', $newRollNo)->first();

-2

यह प्रासंगिक हो सकता है:

return $this->join($table, $first, $operator, $second, 'right'); 

(GitHub) से।

+1

कृपया अपने उत्तर का वर्णन करें, यह क्यों काम करता है? –

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