【问题标题】:How to dynamically define the views folder for desktop and mobile views如何为桌面和移动视图动态定义视图文件夹
【发布时间】:2021-02-06 19:19:24
【问题描述】:

基本上,我有一个这样的目录:

├── views
|   ├── mobile
|   |   ├── main.blade.php
|   └── desktop
|       ├── main.blade.php

我有 jenssegers/agent,所以我可以检测用户是否在使用移动/桌面,然后动态加载 /mobile 或 /desktop 视图。

我有一个 AgentServiceProvider 可以检测它是否是移动的,我可以将它传递给视图,但我不知道如何动态修改目录。

我知道路径是静态加载在 view.php 文件中的:

'paths' => [
    resource_path('views'),
],

如何将views目录动态设置为views/desktop和views/mobile?

提前谢谢你。

【问题讨论】:

  • 为什么不直接将视图设置为从控制器渲染?

标签: laravel


【解决方案1】:

您可以动态更新当前请求的配置,例如在 AgentServiceProvider 中:

config([' view.paths' => resource_path('views/mobile')]);

该值将根据包的结果是动态的,例如

$path = $agent->isMobile() ? 'views/mobile' : 'views/desktop';
config([' view.paths' => resource_path($path)]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    相关资源
    最近更新 更多