使用相同视图名称的不同主题的Laravel视图生成器正在相互覆盖
我们正在利用视图生成器来帮助清理控制器。我们还使用了多个主题(iGater/laravel主题)。我们在使用视图生成器时遇到的问题是,有些页面具有相同的视图名称,因此应用了错误的视图生成器 以下是两个数据完全不同的独立主页(因为它们是两个完全不同的平台):使用相同视图名称的不同主题的Laravel视图生成器正在相互覆盖,laravel,laravel-6,Laravel,Laravel 6,我们正在利用视图生成器来帮助清理控制器。我们还使用了多个主题(iGater/laravel主题)。我们在使用视图生成器时遇到的问题是,有些页面具有相同的视图名称,因此应用了错误的视图生成器 以下是两个数据完全不同的独立主页(因为它们是两个完全不同的平台): /参考资料/themes/platform-1-theme/pages/index.blade.php /参考资料/themes/platform-2-theme/pages/index.blade.php 因此,它们都共享视图名称:“p
- /参考资料/themes/platform-1-theme/pages/index.blade.php
- /参考资料/themes/platform-2-theme/pages/index.blade.php
public function boot()
{
View::composer(['pages.index'], 'App\Http\ViewComposers\Platform-1-ViewComposer');
View::composer(['pages.index'], 'App\Http\ViewComposers\Platform-2-ViewComposer');
}
显然,这是一个问题,因为两个作曲家都将加载到主页,即使他们是两个不同的平台。有没有一种方法可以有条件地只加载我们想要的一个?就我们所知,中间件似乎不能与视图生成器一起工作
编辑: 根据要求,以下是视图文件夹的目录结构:
- 资源/
- 观点/
- 公司/
- breadcrumbs.blade.php
- comments.blade.php
- login-form.blade.php
- message.blade.php
- 页数/
- 管理员/
- 帐目/
- 公司/
- 主题/
- _父母/
- 平台1父主题/
- 公司/
- footer.blade.php
- header.blade.php
- 页数/
- index.blade.php
- news.blade.php
- inventurey.blade.php
- 公司/
- 平台2父主题/
- 公司/
- footer.blade.php
- header.blade.php
- 页数/
- index.blade.php
- news.blade.php
- points.blade.php
- 公司/
- 平台1父主题/
- 客户1/
- 客户端1-平台1-儿童主题/
- 公司/
- header.blade.php
- 页数/
- 公司/
- 客户端1-平台2-儿童主题/
- 公司/
- header.blade.php
- 页数/
- 公司/
- 客户端1-平台1-儿童主题/
- 客户2/
- 客户端2-平台1-儿童主题/
- 公司/
- header.blade.php
- 页数/
- custompage.blade.php
- 公司/
- 客户端2-平台2-儿童主题/
- 公司/
- header.blade.php
- 页数/
- 另一个CustomPage.blade.php
- 公司/
- 客户端2-平台1-儿童主题/
- _父母/
- 观点/
“我的客户端”文件夹扩展了父主题,/resources/views/文件夹用于跨所有平台使用的全局刀片模板。因此,Laravel当前首先在子主题中查找视图,如果在父主题中找不到,则在父主题中查找,如果仍在父主题中找不到,则在/resources/views/folder中查找最后一个视图。因为您有不同的视图和不同的数据,所以有几个视图是有意义的。
共享同一个名字并不意味着他们需要共享同一个作曲家,您可以为每个人注册不同的作曲家。如果我理解正确,这正是我要做的。上面的代码示例在CompositeServiceProvider中注册了两个不同的视图生成器,对吗?它们具有相同的视图名称(只是在不同的主题文件夹中)。但是,当它们共享相同的视图名称时,如何为它们注册不同的视图名称呢?谢谢你能分享
视图
文件夹的目录结构吗?@ab.in-我刚刚把它添加到上面的问题中。谢谢