खोज…
लारवेल में पेजेशन
अन्य रूपरेखाओं में पृष्ठांकन सिरदर्द है। लारवेल इसे हवा बनाता है, यह नियंत्रक और दृश्य में कोड की कुछ पंक्तियों को जोड़कर पेजिनेशन उत्पन्न कर सकता है।
मूल उपयोग
आइटमों को पृष्ठांकित करने के कई तरीके हैं, लेकिन सबसे सरल एक क्वेरी बिल्डर या एलक्विक्वे क्वेरी पर पेजेट विधि का उपयोग कर रहा है। उपयोगकर्ता द्वारा देखे जा रहे वर्तमान पृष्ठ के आधार पर लारवेल बॉक्स से बाहर की सीमा और ऑफसेट की देखभाल करते हैं। डिफ़ॉल्ट रूप से, 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 को संशोधित करने के लिए इस फ़ाइल को संपादित करें।