2014-07-22 8 views
12

मैं लैरवेल और अजाक्स कॉल के साथ चेकबॉक्स क्लिक पर खोज फ़िल्टर पर काम कर रहा हूं। इसलिए जब मैं चेकबॉक्स पर क्लिक करता हूं तो मुझे परिणाम मिलते हैं।लैरवेल पेजिनेशन लिंक पर क्वेरी स्ट्रिंग को स्वचालित रूप से कैसे संलग्न करें?

$editors = User::with(['editor.credentials','editor.specialties','editor.ratings']); 
     $temp=$editors->whereHas('editor', function($q) use ($a_data){ 
      $q->whereHas('specialties',function($sq) use($a_data){ 
      $sq->whereIn('specialty',$a_data); 
      }); 
     })->paginate(2); 

यह मैं सभी डेटा मैं आवश्यक होते हैं: अपनी क्वेरी इस प्रकार है। हालांकि मुझे अंकन के लिए लिंक कैसे प्राप्त करना चाहिए?

$temp->setBaseUrl('editors'); 
    $links = $temp->links()->render(); 

मैं वर्तमान में यह कर रहा हूं और $ लिंक जो मैं ajax कॉल की प्रतिक्रिया के रूप में पदभार भेज रहा हूँ के साथ, मैं $ लिंक डेटा के साथ पृष्ठांकन निर्धारित किया है। अब, मुझे क्वेरी को अगले पृष्ठ जैसे पेज = 2? क्वेरी = "कुछ" में जोड़ना होगा। मुझे नहीं पता कि मैं अगले पृष्ठ लिंक पर शेष क्वेरी परिणाम लिंक जोड़ने के बारे में कैसे जाना चाहिए। यानी मुझे नहीं पता कि क्वेरी = "कुछ" भाग में क्या आना चाहिए। क्या कोई मुझे मार्गदर्शन कर सकता है। धन्यवाद

उत्तर

14

@Arda से उत्तर की जांच करें, क्योंकि यह वैश्विक समाधान है। नीचे आप मैन्युअल रूप से इसे कैसे कर सकते हैं।

उपयोग appends paginator पर:

$querystringArray = Input::only(['search','filter','order']); // sensible examples 

// or: 
$querystringArray = ['queryVar' => 'something', 'anotherVar' => 'something_else']; 

$temp->appends($querystringArray); 
+0

महान है कि काम किया। मैं 'appends() 'का उपयोग करने के तरीके के बारे में उलझन में था। धन्यवाद फिर से – user2067888

14

अपने ऐप्लिकेशन में इस कहीं भी जोड़ें (उदा routes.php, filters.php या कुछ भी है कि autoloaded है), किसी भी पृष्ठांकन कोड कि पहले से ही लिखा है संपादित करने के लिए कोई जरूरत नहीं। यह दोषरहित काम करता है दृश्य संगीतकार का उपयोग कर, और आप किसी भी क्वेरी स्ट्रिंग पैरामीटर पता करने की जरूरत नहीं है:

////////PAGINATION QUERY STRING APPEND 
View::composer(Paginator::getViewName(), function($view) { 
    $queryString = array_except(Input::query(), Paginator::getPageName()); 
    $view->paginator->appends($queryString); 
}); 
////////////////// 
+0

इसे –

+0

मार्गों में FatalErrorException स्वीकार किया जाना चाहिए। php लाइन 20: कक्षा 'पेजिनेटर' नहीं मिला – Tarzan

+1

यह उत्तर लैरवेल 4 @ टार्ज़न के लिए है, लैरवेल 5 में, कक्षाएं पीएसआर -4 मानकों हैं, इसलिए आपको \ पहले चरित्र लेकिन मैंने LAravel 5 में यह कोशिश नहीं की है। – Arda

8
पल (5.2), तुम बस को पुनः प्राप्त करने का अनुरोध मुखौटा का उपयोग कर सकते पर

Laravel के नवीनतम संस्करण के लिए क्वेरी स्ट्रिंग और अपने paginator के जोड़ देती है कि पारित() विधि

$input = Request::input(); 
$myModelsPaginator = App\Models\MyModel::paginate(); 
$myModelsPaginator->appends($input); 
31
{{ $users->appends($_GET)->links() }} 

यह पृष्ठांकन लिंक

+0

आपने मुझे बचाया! लार्वेल 5.4 –

+0

में पूरी तरह से काम किया, धन्यवाद, लैरवेल 5.4 –

+0

के लिए भी मेरे लिए काम किया धन्यवाद, यह वास्तव में काम करता है –

0

संलग्न एसी के अलावा सभी इनपुट में सभी क्वेरी स्ट्रिंग पैरामीटर जोड़ देंगे, असली पेज, टोकन के रूप में और तुम पारित करने के लिए नहीं करना चाहते हैं क्या:

$paginatedCollection->appends(request()->except(['page','_token'])); 
संबंधित मुद्दे