如何从Laravel中的包中扩展视图?

时间:2017-04-30 13:18:41

标签: laravel laravel-blade vendor

所以我将这个软件包集成到我的应用程序https://github.com/thekordy/ticketit,这个软件包有自己的视图,我想修改像create.blade.php这样的视图,我怎么能这样做呢?

因为我当前的解决方案只是从包中复制视图更改返回视图('create');在我的控制器?

2 个答案:

答案 0 :(得分:3)

您会注意到许多软件包在其instalation proccess中包含此命令:

php artisan vendor:publish

它在幕后的作用是查找所有包的服务提供商指令,以便弄清楚应该“发布”的任何内容(意味着从供应商文件夹复制到config /,views / etc)

我看了你的包的服务提供商: https://github.com/thekordy/ticketit/blob/0.2/src/TicketitServiceProvider.php和第179到182行,包似乎有正确的“发布”说明。

这可能意味着文档可能会使这一部分失去作用。

所以,你应该基本上点击命令php artisan vendor:publish,它会将视图,翻译,公共和迁移文件夹复制到你自己的应用程序文件夹中。

然后,您将在资源/视图中看到供应商文件夹,该文件夹现在将包含ticketit视图。

当你说“view('ticketit.form.index')”时,Laravel会想出来,它首先会查看你自己的资源文件夹,如果找不到内容,它会尝试查看包内的内容文件夹中。

有关详情,请阅读文档:https://laravel.com/docs/5.4/packages#views

答案 1 :(得分:0)

只需添加一件事,就可以使用publish命令的标记来选择要发布的资源类型

php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider" --tag="views"

仅发布工单视图(目标:base_path/resources/views/vendor/ticketit

如果由于某种原因发现扩展视图不够,并且想要扩展功能或控制器本身ticketit allows using of custom routes file,则可以使用它来指向自己的自定义控制器。


其他受支持的供应商发布标签:

php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider" --tag="lang"

仅发布工单翻译文件(目的地:base_path/resources/lang/vendor/ticketit

php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider" --tag="db"

仅发布工单迁移文件(目标:base_path/database/migrations

php artisan vendor:publish --provider="Kordy\Ticketit\TicketitServiceProvider" --tag="public"

仅发布ticketit Web资源(js,css,..)文件(目标:public_path/vendor/ticketit