खोज…


लारवेल में पेजेशन

अन्य रूपरेखाओं में पृष्ठांकन सिरदर्द है। लारवेल इसे हवा बनाता है, यह नियंत्रक और दृश्य में कोड की कुछ पंक्तियों को जोड़कर पेजिनेशन उत्पन्न कर सकता है।

मूल उपयोग

आइटमों को पृष्ठांकित करने के कई तरीके हैं, लेकिन सबसे सरल एक क्वेरी बिल्डर या एलक्विक्वे क्वेरी पर पेजेट विधि का उपयोग कर रहा है। उपयोगकर्ता द्वारा देखे जा रहे वर्तमान पृष्ठ के आधार पर लारवेल बॉक्स से बाहर की सीमा और ऑफसेट की देखभाल करते हैं। डिफ़ॉल्ट रूप से, HTTP अनुरोध पर पृष्ठ क्वेरी स्ट्रिंग तर्क के मान से वर्तमान पृष्ठ का पता लगाया जाता है। और निश्चित रूप से, इस मान को लारवेल द्वारा स्वचालित रूप से पता लगाया जाता है और पेजिनेटर द्वारा उत्पन्न लिंक में सम्मिलित किया जाता है।

अब paginate लेते हैं कि हम क्वेरी पर paginate विधि को कॉल करना चाहते हैं। हमारे उदाहरण में पेजेट करने के लिए पारित तर्क वह आइटम है जो आप "प्रति पृष्ठ" प्रदर्शित करना चाहते हैं। हमारे मामले में, मान लें कि हम प्रति पृष्ठ 10 आइटम प्रदर्शित करना चाहते हैं।

<?php

namespace App\Http\Controllers;

use DB;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show all of the users for the application.
     *
     * @return Response
     */
    public function index()
    {
        $users = DB::table('users')->paginate(10);

        return view('user.index', ['users' => $users]);
    }
}

नोट: वर्तमान में, groupBy कथन का उपयोग करने वाले groupBy ऑपरेशन को groupBy द्वारा कुशलता से निष्पादित नहीं किया जा सकता है। यदि आपको groupBy परिणाम सेट के साथ एक groupBy का उपयोग करने की आवश्यकता है, तो यह अनुशंसा की जाती है कि आप डेटाबेस को क्वेरी करें और मैन्युअल रूप से एक पेजेटर बनाएं।

सरल अंकुरण

मान लीजिए कि आप अपने पृष्ठांकन दृश्य पर केवल अगला और पिछला लिंक प्रदर्शित करना चाहते हैं। Laravel आपको simplePaginate विधि का उपयोग करके यह विकल्प प्रदान करता है।

$users = DB::table('users')->simplePaginate(10);

एक दृश्य में परिणाम प्रदर्शित करना

अब पेजेशन को देखने की सुविधा देता है। असल में जब आप कॉल paginate या simplePaginate सुवक्ता क्वेरी पर विधियों, यदि आप एक paginator उदाहरण प्राप्त करते हैं। जब paginate विधि को कॉल किया जाता है, तो आप Illuminate\Pagination\LengthAwarePaginator का एक उदाहरण प्राप्त करते हैं, जबकि जब आप simplePaginate विधि कहते हैं, तो आप Illuminate\Pagination\Paginator का एक उदाहरण प्राप्त करते हैं। ये उदाहरण / ऑब्जेक्ट कई विधियों के साथ आते हैं जो परिणाम सेट को समझाते हैं। इसके अलावा, इन सहायकों के तरीकों के अलावा, पेजिनेटर इंस्टेंसेस पुनरावृत्त हैं और इसे एक सरणी के रूप में देखा जा सकता है।

एक बार परिणाम प्राप्त करने के बाद, आप आसानी से ब्लेड का उपयोग करके पेज लिंक को प्रस्तुत कर सकते हैं

<div class="container">
    @foreach ($users as $user)
        {{ $user->name }}
    @endforeach
</div>

{{ $users->links() }}

links विधि परिणाम सेट में अन्य पृष्ठों के लिंक को स्वचालित रूप से प्रस्तुत करेगी। इनमें से प्रत्येक लिंक में विशिष्ट पृष्ठ संख्या होगी ?page क्वेरी स्ट्रिंग चर। लिंक विधि द्वारा उत्पन्न HTML बूटस्ट्रैप सीएसएस फ्रेमवर्क के साथ पूरी तरह से संगत है

पेजिंग विचार बदलना

लार्वा पैगिनेशन का उपयोग करते समय आप अपने स्वयं के कस्टम दृश्यों का उपयोग करने के लिए स्वतंत्र होते हैं। इसलिए, जब एक पेजिनेटर इंस्टेंस पर लिंक विधि को कॉल करते हैं, तो दृश्य नाम को पहले तर्क के रूप में पास करें जैसे:

{{ $paginator->links('view.name') }}

या

आप अपने resources/views/vendor निर्देशिका के लिए विक्रेता का उपयोग कर उन्हें निर्यात कर सकते हैं: प्रकाशन आदेश:

php artisan vendor:publish --tag=laravel-pagination

यह कमांड resources/views/vendor/pagination डायरेक्टरी में व्यूज को प्लेस करेगा। इस निर्देशिका के भीतर default.blade.php फ़ाइल डिफ़ॉल्ट पेजिनेशन दृश्य से मेल खाती है। पेजिनेशन के HTML को संशोधित करने के लिए इस फ़ाइल को संपादित करें।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow