मैं उपयोगकर्ता भुगतान स्थिति माहवार प्रदर्शित करना चाहता हूं। मैं कोशिश कर रहा हूं लेकिन मुझे इसे हासिल करने का कोई विचार नहीं मिल रहा है।

मेरे पास दो टेबल हैं:

  1. उपयोगकर्ता तालिका (आईडी, उपयोगकर्ता नाम, पर अद्यतन, पर बनाया गया)
  2. भुगतान तालिका (आईडी, user_id, भुगतान स्थिति, भुगतान)

मैं क्वेरी का उपयोग करके नीचे दिए गए परिदृश्य को प्राप्त करने का प्रयास कर रहा हूं:

Select * from users where updated_at=**selectmonth**

लेकिन मुझे वह परिणाम नहीं मिल रहा है जो मैं चाहता हूं।

मान लीजिए कि व्यवस्थापक महीने का चयन करता है अगस्त 2019 फिर सभी उपयोगकर्ताओं को इसकी भुगतान स्थिति और अगस्त महीने की तारीख के साथ प्रदर्शित करें जैसे:

| नाम | भुगतान स्थिति | भुगतान तिथि


| ABC | हो गया | 01-08-2019

| XYZ | नहीं किया गया | 02-08-2019

यदि व्यवस्थापक ड्रॉपडाउन से अप्रैल 2019 का चयन करता है तो ऊपर की तरह ही अप्रैल महीने के उपयोगकर्ताओं के विवरण प्रदर्शित करें।

तालिका में स्थिर डेटा जोड़ा गया। मैं ऐसा कुछ बनाना चाहता हूं।

enter image description here

कृपया सुझाव दें कि मैं उपयोगकर्ता रिकॉर्ड कैसे प्रदर्शित कर सकता हूं?

-2
Akash Gadhiya 1 अगस्त 2019, 18:31

2 जवाब

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

आप यह कर सकते हैं: नीचे png में तालिका संरचना है। भुगतान की स्थिति का डिफ़ॉल्ट मान 0 होता है। जब रिकॉर्ड तालिका में प्रवेश करता है तो यह 1 में बदल जाता है। यहां 0 का अर्थ नहीं है। 1 किया के लिए खड़ा है। यहां छवि विवरण दर्ज करें

अपने नियंत्रक में, यह करें:

public function showPaymentDetails(Request $request)
    {
        $dateInput=$request->input(dateselect);

        $data['users']=DB::table('user_table')
        ->leftjoin('payment_table','user_table.idusertable','=','payment_table.user_table_idusertable')
        ->orderby('user_table.idusertable','desc')
        ->where('payment_table.paymentDate','=',$dateInput)
        ->get();
        return view('usersform',$data);
    }

फिर अपने ब्लेड में, आप रिकॉर्ड प्रदर्शित कर सकते हैं। किया/नहीं किया दिखाने के लिए आप अपने ब्लेड पर कुछ तर्क कर सकते हैं:

<div class="table-responsive col-md-12">
                                          <table id="mytable" class="table table-bordered table-striped table-highlight">
                                            <thead>
                                              <tr bgcolor="#c7c7c7">
                                                <th>S/N</th>
                                                <th>UserName</th>
                                                <th>Phone</th>
                                                <th>Location</th>
                                                <th>Email</th>
                                                <th>PaymentDate</th>
                                                <th>Payment Status</th>

                                              </tr>
                                            </thead>

                                            <tbody>

                                              @php
                                              $i=1;
                                              @endphp
                                                @foreach($users as $list)

                                                   <tr>
                                                   <td>{{ $i++ }}</td>

                                                   <td>{{ $list->fullname}}</td>
                                                   <td>{{ $list->phone}}</td>
                                                   <td>{{ $list->location}}</td>
                                                   <td>{{ $list->email}}</td>
                                                   <td>{{ $list->paymentDate}}</td>
                                                   <td> @if($list->paymentDate==0){{ 'Not Done' }} @elsif($list->paymentStatus==1) {{ 'Done' }} @endif</td>
                                                   </tr>
                                               @endforeach
                                                </tbody>

                                          </table>
                                           <hr />


                                        </div>

// आपका मार्ग

Route::Post('/display-payment-details',   'YourController@showPaymentDetails');
1
Julius Fasema 1 अगस्त 2019, 18:57

बशर्ते कि उपयोगकर्ता और भुगतान डीबी में एक विदेशी कुंजी से जुड़े हों (देखें लारावेल का दस्तावेज़ीकरण a> रिश्तों के बारे में) आप इसे कई तरीकों से हासिल कर सकते हैं। मैं उस कोड पर ध्यान केंद्रित करूंगा जो परिणाम पुनर्प्राप्त करता है, क्योंकि हमारे पास सटीक परिदृश्य के बारे में कोई विवरण नहीं है:

उदाहरण 1 यदि आप उपयोगकर्ता-केंद्रित संदर्भ में हैं, तो payments एक-से-अनेक संबंध दिए गए हैं:

// You can perform this or more specific queries
User::with( 'payments' )->get();
// this will return all the users, with an additional property `payments` which is a collection of the user payments

अधिक "दायरे" तरीके से:

$date = '2019-02-01'; // This is a basic example
User::with( 'payments', function( $query ) use ($date) {
    return $query->where( [ ['date', '<', Carbon::createDateFromString($date)->addMonths(1)], ['date', '>', Carbon::createDateFromString($date)->subMonths(1)] ] );
} )->get();

उदाहरण 2 यदि आप भुगतान-केंद्रित संदर्भ में हैं, तो एक user संबंध दिया गया है, जिसे लारवेल के belongTo द्वारा परिभाषित किया गया है (ऊपर लिंक किए गए दस्तावेज़ देखें):

$payments = Payment::with( 'user' )->where( [ ['date', '<', Carbon::createDateFromString($date)->addMonths(1)], ['date', '>', Carbon::createDateFromString($date)->subMonths(1)] ] )->get();
// this gets the payment you are looking for.

foreach($payments as $payment) {
    $user = $payment->user;
}

आप lazy-loading के माध्यम से भी संबंधित मॉडल प्राप्त कर सकते हैं (फिर से ऊपर दिए गए दस्तावेज़ देखें), या आप एक क्वेरी स्कोप

0
Aranarth 1 अगस्त 2019, 18:56