1

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();
    }
}

環境.php

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

「Illuminate\Pagination\PaginationServiceProvider」「Thujohn\Pagination\PaginationServiceProvider」に置き換えました。

$test->links()を呼び出すと問題ありません

$test->hello()を呼び出すと失敗します

Paginator::hello()を呼び出すと問題ありません

何か案が ?

4

1 に答える 1

3

ではなくインスタンスをPaginator::make()返すことを除いて、すべてが問題ありません。PaginatorEnvironment

メソッドをPaginatorクラスに移動する必要があります。

今日、GH に の拡張機能を投稿しましたPaginator参照デスマート/ページネーションとして確認できます

于 2013-06-12T12:51:33.160 に答える