【问题标题】:Laravel 4 - Extend Pagination ClassLaravel 4 - 扩展分页类
【发布时间】:2013-06-08 04:36:00
【问题描述】:

有没有办法扩展 Laravel 4 的分页类?

我尝试了一些东西,但没有什么好...

我来了:

PaginationServiceProvider.php

class PaginationServiceProvider extends \Illuminate\Pagination\PaginationServiceProvider {
    /**
     * Indicates if loading of the provider is deferred.
     * @var bool
     */
    protected $defer = false;

    /**
     * Bootstrap the application events.
     * @return void
     */
    public function boot(){
        $this->package('thujohn/pagination');
    }

    /**
     * Register the service provider.
     * @return void
     */
    public function register(){
        $this->app['paginator'] = $this->app->share(function($app){
            $paginator = new Environment($app['request'], $app['view'], $app['translator']);
            $paginator->setViewName($app['config']['view.pagination']);
            return $paginator;
        });
    }

    /**
     * Get the services provided by the provider.
     * @return array
     */
    public function provides(){
        return array();
    }
}

Environment.php

class Environment extends \Illuminate\Pagination\Environment {
    public function hello(){
        return 'hello';
    }
}

我将 'Illuminate\Pagination\PaginationServiceProvider', 替换为 'Thujohn\Pagination\PaginationServiceProvider',

当我调用 $test->links() 没问题

当我调用 $test->hello() 失败

当我调用 Paginator::hello() 没问题

有什么想法吗?

【问题讨论】:

标签: laravel laravel-4


【解决方案1】:

一切都很好,除了 Paginator::make() 返回 Paginator 实例,而不是 Environment

您应该将您的方法移至Paginator 类。

今天我在 GH 上发布了我的扩展名 Paginator。您可以将其作为参考desmart/pagination

【讨论】:

    猜你喜欢
    • 2012-12-30
    • 1970-01-01
    • 2013-07-01
    • 2014-02-24
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2014-06-29
    相关资源
    最近更新 更多