每个路由有两个刀片文件,一个用于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');
这是所有未经测试的代码,只是为了指出您可能的解决方案.