所以我将这个软件包集成到我的应用程序https://github.com/thekordy/ticketit,这个软件包有自己的视图,我想修改像create.blade.php这样的视图,我怎么能这样做呢?
因为我当前的解决方案只是从包中复制视图更改返回视图('create');在我的控制器?
答案 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
)