如何将Laravel 4自定义分页放在供应商文件之外


How to put Laravel 4 custom pagination outside vendor file?

有很多关于在laravel 4中构建自定义分页视图的指南(我使用的是laravel 4.2,确切地说),我遵循这些指南,它工作得很好。

问题是许多指南倾向于直接改变/vendor/laravel/framework/src/Illuminate/Pagination/views的视图。我使用Git进行源代码控制,遵循默认的gitignore文件,整个供应商文件被Git忽略。我可能会更改gitignore文件,但我认为将其保留为Git未触及的供应商文件是合理的,因为这应该由composer处理。

然后,我注意到在设置文件view.php
/*
    |--------------------------------------------------------------------------
    | Pagination View
    |--------------------------------------------------------------------------
    |
    | This view will be used to render the pagination link output, and can
    | be easily customized here to show any view you like. A clean view
    | compatible with Twitter's Bootstrap is given to you by default.
    |
    */
    'pagination' => 'pagination::slider',

是否有一种方法可以改变设置,使自定义分页视图可以放在其他地方?

我以前没有这样做过,但是只是快速浏览一下您引用的指南,它说:

要开始开发自定义分页视图,请在应用程序的视图文件夹中创建一个名为"pagination"(或其他)的子文件夹,然后创建一个名为"mine.php"的空视图文件。

之后:

开始开发视图文件的最简单方法是复制并修改一个现有的默认分页视图。

我可以理解这可能会导致混乱,但作者并没有说要在供应商目录中创建您的新视图。引用的第一条语句说要在应用程序的视图文件夹中创建视图。后面提到复制和修改现有视图的语句意味着从供应商目录复制现有视图,并将其放置到新的应用程序目录中。

那么,步骤将是:

  1. 在应用程序中创建一个新的视图文件夹:app/views/pagination
  2. 从供应商文件夹中复制一个现有视图,并将其放入新的分页视图文件夹中,并使用新名称:app/views/pagination/mine.php
  3. 更新app/config/view.php文件以指向新的分页视图:'pagination' => 'pagination.mine'