我尝试制作自己版本的供应商刀片模板。 我不想用视图的引用来扩展控制器。
所以在我的 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 的新行可以做到这一点。
Passport 附带 VUE 组件和视图,您需要先发布才能覆盖它们。从 Laravel Passport 页面:
"如果您想自定义授权审批屏幕,您可以使用
vendor:publish
Artisan 命令发布 Passport 的视图。"
您需要做的就是运行
php artisan vendor:publish --tag=passport-views
,供应商视图将放置在 resources/views/vendor/passport
中,您可以在其中编辑它们。
使用可以使用
php artisan vendor:publish --tag=passport-views
这会将视图复制到您的视图文件夹中供您更改。
所以在我的 AppServiceProvider 中我添加了这一行:
// 护照的自定义视图 $this->loadViewsFrom(DIR.'/../../resources/views/oauth/passport', “护照”);
您只能通过将其放在registry()而不是boot()中来使用该选项。然后您就可以使用您的视图,无论它们是否在供应商中发布
实际上就像创建一个
resources/views/vendor/{namespace}
目录一样简单,然后放入您的视图文件中以替换/覆盖供应商的。
检查底座
Illuminate\Support\ServiceProvider
这意味着如果
resources/views/vendor/$namespace
目录中存在匹配的视图文件,则视图将被解析
您要替换视图的包需要调用
loadViewsFrom
方法来注册其视图,否则,他们不会注意到自定义文件。
护照包在这里执行此操作:PassportServiceProvider