आपको पृष्ठांकन पुस्तकालय में कुछ अन्य कक्षाओं के बीच, पेजिनेशन सेवा प्रदाता को प्रतिस्थापित करने की आवश्यकता होगी। इसकी आवाज़ से आप जानते हैं कि इसे कैसे करें, लेकिन एक और जवाब की उम्मीद कर रहे थे, लेकिन जैसा कि मेरे पास कोड है, मैं इसे आपके लिए यहां छोड़ दूंगा।
इन वर्गों/विधियों को प्रतिस्थापित करने के लिए आपको कारणों की आवश्यकता है क्योंकि रोशनी में फ़ाइलों को सीधे रोशनी नामस्थान के भीतर कक्षाओं के संदर्भ संदर्भ उदाहरण हैं।
config में/app.php
बदलें
'Illuminate\Pagination\PaginationServiceProvider',
साथ
'ExtendedPaginationServiceProvider',
एक नई फ़ाइल बनाएं कहीं autoloader यह खोजने के लिए सक्षम ExtendedPaginationServiceProvider.php कहा जाता है और निम्नलिखित जगह है इसमें
<?php
use Illuminate\Support\ServiceProvider;
class ExtendedPaginationServiceProvider extends ServiceProvider
{
/**
* @inheritdoc
*/
public function register()
{
$this->app->bindShared('paginator', function($app)
{
$paginator = new ExtendedPaginationFactory($app['request'], $app['view'], $app['translator']);
$paginator->setViewName($app['config']['view.pagination']);
$app->refresh('request', $paginator, 'setRequest');
return $paginator;
});
}
}
एक नई फ़ाइल बनाएं कहीं autoloader यह खोजने के लिए सक्षम ExtendedPaginationFactory.php कहा जाता है और में यह
<?php
use Illuminate\Pagination\Factory;
class ExtendedPaginationFactory extends Factory
{
/**
* @inheritdoc
*/
public function make(array $items, $total, $perPage = null)
{
$paginator = new ExtendedPaginationPaginator($this, $items, $total, $perPage);
return $paginator->setupPaginationContext();
}
}
एक नई फ़ाइल बनाना कहीं autoloader यह खोजने के लिए सक्षम ExtendedPaginationPaginator.php और जगह कहा जाता है निम्नलिखित जगह है इसमें निम्नलिखित
<?php
use Illuminate\Pagination\Paginator;
class ExtendedPaginationPaginator extends Paginator
{
/**
* Get a collection instance containing the items.
*
* @return ExtendedCollection
*/
public function getCollection()
{
return new ExtendedCollection($this->items);
}
}
आप उपरोक्त रिटर्न को विस्तारित कोलेक्शन का एक नया उदाहरण देखेंगे। स्पष्ट रूप से इसे अपने कस्टमकॉलेक्शन क्लास के साथ बदलें जिसे आप अपने प्रश्न में संदर्भित करते हैं।
दूसरों को संदर्भित करने के लिए, एक ExtendedCollection वर्ग नीचे
एक नई फ़ाइल बनाएं कहीं autoloader के समान लग सकता है यह खोजने के लिए सक्षम ExtendedCollection.php कहा जाता है और यह
<?php
use Illuminate\Support\Collection;
class ExtendedCollection extends Collection
{
}
में निम्नलिखित जगह है
इसके अलावा, इन फ़ाइलों को बनाने के बाद, मत भूलना टर्मिनल
composer dump-autoload
हां आप कर रहे हैं पूरी तरह से ठीक है, मैं विकल्पों में से बाहर तो मैं चला चुके में निम्नलिखित को चलाने के लिए सेवा प्रदाता को बदलना होगा। हालांकि मुझे निश्चित रूप से खुशी है कि सेवा प्रदाता की जगह एक विकल्प है। इस पर गहराई से प्रतिक्रिया की सराहना करते हैं –