是否有可能从另一个软件包覆盖laravel软件包视图

时间:2019-07-23 09:08:58

标签: php laravel laravel-blade laravel-5.8 php-7.3

是否可以从另一个包中覆盖包视图?
通过
注册视图路径时 loadViewsFrom('path/to/views', 'package')
它也会出现在
/resources/views/vendor/package
因此,您可以在使用包时覆盖视图,
但是有办法重写其他包中的视图吗?

1 个答案:

答案 0 :(得分:0)

是的。

步骤:

  1. 发布要覆盖的包视图:

    php artisan vendor:publish --provider="Another\Package" --tag=views
    
  2. 修改已发布的内容。

  3. 将修改内容放入您程序包的目录中,例如:

     /resources/vendor/another-package/views
    
  4. 使其可以发布。添加到您程序包的服务提供商boot():

    public function boot()
    {
        $this->publishes([
            __DIR__.'/resources/vendor/another-package/views' =>
            base_path('resources/views/vendor/another-package')
        ], 'views');
    }
    
  5. 发布修改:

    php artisan vendor:publish --provider="Your\Package" --tag=views --force
    

注意:根据需要更改Another\Packageanother-package。在Laravel 7中效果很好。