php – 如何在Laravel中呈现Web和移动视图

每个路由有两个刀片文件,一个用于Web,一个用于移动设备.我不知道处理请求的正确方法.
这是一个正确的方法:

在每个控制器功能结束时(对于每个请求)

If it is mobile (via Jenssegers)
    View::make(file_mobile.blade.php)
else
    View::make(file_web.blade.php)

你会建议什么?

解决方法:

一种选择是使用像Laravel Agent这样的库.

https://github.com/jenssegers/Laravel-Agent

if ( Agent::isMobile() ) {
    View::make("file_mobile.blade.php");
} else {
    View::make("file_web.blade.php");
}

您可能希望将其抽象出来,而不是在每个控制器方法中重复此操作.一个response macro似乎是一个很好的选择,可能是这样的:

Response::macro('ress', function($viewname)
{
    if ( Agent::isMobile() ) {
        return View::make($viewname . "_mobile.blade.php");
    } else {
        return View::make($viewname . "_web.blade.php");
    }
});

这样你就可以在控制器中调用它:

return Response::ress('file');

这是所有未经测试的代码,只是为了指出您可能的解决方案.

上一篇:安全删除Elasticsearch数据节点


下一篇:Elastic Stack:es JavaApi搜索入门