Laravel5.6 - 覆盖供应商视图

问题描述 投票:0回答:4

我尝试制作自己版本的供应商刀片模板。 我不想用视图的引用来扩展控制器。

所以在我的 AppServiceProvider 中我添加了这一行:

// Custom views for passport
    $this->loadViewsFrom(__DIR__.'/../../resources/views/oauth/passport', 'passport');

我在/resources/views/oauth/passport 中创建了一个名为authorize.blade.php 的文件

在供应商控制器方法中我们可以看到:

return $this->response->view('passport::authorize');

问题是当我调用供应商控制器方法时,它会加载他的authorize.blade.php 版本。我希望加载我的,并且我希望添加到 AppServiceProvider 的新行可以做到这一点。

php laravel view overriding vendor
4个回答
2
投票

Passport 附带 VUE 组件和视图,您需要先发布才能覆盖它们。从 Laravel Passport 页面

"如果您想自定义授权审批屏幕,您可以使用

vendor:publish
Artisan 命令发布 Passport 的视图。"

您需要做的就是运行

php artisan vendor:publish --tag=passport-views
,供应商视图将放置在
resources/views/vendor/passport
中,您可以在其中编辑它们。


0
投票

使用可以使用

php artisan vendor:publish --tag=passport-views
这会将视图复制到您的视图文件夹中供您更改。


0
投票

所以在我的 AppServiceProvider 中我添加了这一行:

// 护照的自定义视图 $this->loadViewsFrom(DIR.'/../../resources/views/oauth/passport', “护照”);

您只能通过将其放在registry()而不是boot()中来使用该选项。然后您就可以使用您的视图,无论它们是否在供应商中发布


0
投票

实际上就像创建一个

resources/views/vendor/{namespace}
目录一样简单,然后放入您的视图文件中以替换/覆盖供应商的。

检查底座

Illuminate\Support\ServiceProvider

这意味着如果

resources/views/vendor/$namespace
目录中存在匹配的视图文件,则视图将被解析

注意

您要替换视图的包需要调用

loadViewsFrom
方法来注册其视图,否则,他们不会注意到自定义文件。

护照包在这里执行此操作:PassportServiceProvider

© www.soinside.com 2019 - 2024. All rights reserved.