laravel - 如何为桌面和移动视图动态定义视图文件夹
问题描述
基本上,我有一个这样的目录:
├── views
| ├── mobile
| | ├── main.blade.php
| └── desktop
| ├── main.blade.php
我有 jensegers/agent,所以我可以检测用户是否正在使用移动/桌面,然后动态加载 /mobile 或 /desktop 视图。
我有一个 AgentServiceProvider 可以检测它是否是移动的,我可以将它传递给视图,但我不知道如何动态修改目录。
我知道路径是静态加载在 view.php 文件中的:
'paths' => [
resource_path('views'),
],
如何将视图目录动态设置为视图/桌面和视图/移动?
先感谢您。
解决方案
您可以动态更新当前请求的配置,例如在 AgentServiceProvider 中:
config([' view.paths' => resource_path('views/mobile')]);
该值将根据包的结果是动态的,例如
$path = $agent->isMobile() ? 'views/mobile' : 'views/desktop';
config([' view.paths' => resource_path($path)]);
推荐阅读
- c# - 在winforms中设置组合框选定文本的正确方法?
- python - 在树莓派上安装 PyQt5 和 QtDesigner
- multithreading - 我的线程安全队列代码似乎可以工作,是否存在任何可能的竞争条件、死锁或其他设计问题?
- sequelize.js - 在 Sequelize 6 中获取 instance._modelOptions
- r - 在 R 中的数据帧列表上执行迭代的最有效方法?
- python - 不知道如何在我的应用程序中应用 mainloop()
- javascript - Javascript向html表添加一个带有值的按钮?
- cmake - How can I specify an include directory to use when compiling a specific, generated, source file?
- javascript - 让用户在 React 中只评论一次?
- python - 如何使 tkinter 画布更新?