क्या लारवेल के ELOQUENT ORM के साथ परिणाम को "सीमित" करने का एक तरीका है?


135

क्या लारवेल के ELOQUENT ORM के साथ परिणाम को "सीमित" करने का एक तरीका है?

 SELECT * FROM  `games` LIMIT 30 , 30 

और वाक्पटु के साथ?

जवाबों:


241

एक गेम मॉडल बनाएं जो एलोकेंट का विस्तार करता है और इसका उपयोग करता है:

Game::take(30)->skip(30)->get();

take()यहां 30 रिकॉर्ड मिलेंगे और skip()यहां 30 रिकॉर्ड की भरपाई होगी।


हाल के लारावेल संस्करणों में आप भी उपयोग कर सकते हैं:

Game::limit(30)->offset(30)->get();

क्या मैं आपको यहाँ एक लारवल ORM से संबंधित प्रश्न पर एक नज़र डालने के लिए कह सकता हूँ: stackoverflow.com/questions/59956706/… ?
इस्तियाक अहमद

17

यदि आप परिणाम देखना चाहते हैं , तो एकीकृत पेजिनेटर का उपयोग करें , यह बहुत अच्छा काम करता है!

$games = Game::paginate(30);
// $games->results = the 30 you asked for
// $games->links() = the links to next, previous, etc pages

3
यह गंभीर रूप से आश्चर्यजनक है! बूटस्ट्रैप का उपयोग करना, वस्तुतः आपके लिए आवश्यक सभी कोड $ गेम्स = गेम :: पेजर (30) आपके कंट्रोलर में और {{$ गेम्स-> लिंक्स ()}} आपके विचार में है ... यह सब कुछ ध्यान रखता है। प्यार करने वाला लावेले!
david_nash

16

हम सीमा की तरह सीमा का उपयोग कर सकते हैं:

Model::take(20)->get();

लगता है कि आप ले रहे हैं और सीमा का उपयोग नहीं कर रहे हैं
टहनी

2
इस मामले में, takeसिर्फ एक उपनाम है limitGithub.com/laravel/framework/blob/5.7/src/Illuminate/Database/… देखें ।
Xartrick

0

साथ ही, हम इसे निम्नलिखित तरीकों से उपयोग कर सकते हैं

केवल पहले पाने के लिए

 $cat_details = DB::table('an_category')->where('slug', 'people')->first();

सीमा और ऑफसेट द्वारा प्राप्त करने के लिए

$top_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(0)->orderBy('id', 'DESC')->get();
$remaining_articles = DB::table('an_pages')->where('status',1)->limit(30)->offset(30)->orderBy('id', 'DESC')->get();
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.