मेरे पास मेरे नियंत्रक में यह $ क्वेरी फ़ंक्शन है। यह काम करता है। लेकिन जब मैं इसके अंदर एक चर जोड़ने की कोशिश करता हूं, तो यह काम नहीं कर रहा है। यह मेरा पूरा कार्य है

$setting = DB::table('settings')->where('id','=','1')->get();
     foreach($setting as $st)
     $date1 = $st->date1;
     $date2 = $st ->date2;

$accounts =  Account::with(['subaccount' => function($query){
             $query->with(['subaccountinvoice'=> function($query){
             $query->where('validate', '=','1')->whereBetween('updated_at', [$date1, $date2]);}])->get();
         }])->get();

चर $date1 और $date2 परिभाषित नहीं हैं क्योंकि वे आंतरिक क्वेरी फ़ंक्शन हैं

2
yassine j 17 नवम्बर 2018, 01:40

1 उत्तर

सबसे बढ़िया उत्तर

PHP में एक क्लोजर के भीतर एक वैरिएबल को इनहेरिट करने के लिए आपको इसे use कीवर्ड का उपयोग करके क्लोजर में पास करना होगा।

अपना खाता कोड इसमें बदलें:

$accounts =  Account::with(['subaccount' => function($query) use ($date1, $date2) {
                 $query->with(['subaccountinvoice'=> function($query) use ($date1, $date2) {
                    $query->where('validate', '=','1')->whereBetween('updated_at', [$date1, $date2]);}])->get();
             }])->get();
8
nakov 17 नवम्बर 2018, 10:00