怎么简化或者优化客户端判断代码
我用laravel 的 Agent 判断用户端,然后渲染不同的页面,代码如下:
UsersController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Agent;
class UsersController extends Controller
{
public function index() {
if(Agent::isMobile()){
return view("mobile.auth.member-index");
} else {
return ("请用手机访问懂你心理");
}
}
public function create() {
if(Agent::isMobile()){
return view("mobile.auth.member-login");
} else {
return ("请用手机访问懂你心理");
}
}
这样会出现大量的if语句,我怎么优化呢?比如写到model里?
建个中间件
其实你可以定义一个全局函数, 比如
然后, 调用.
中间件+1
@likunyan @pigzzz 二位大佬能否留下代码片段或者参考文章,新手感激不尽
多看文档
个人认为中间件虽然是比较好的解决方案 但是不易扩展,如果电脑也需要返回视图,这种方案就不行了
如果只要统一碰到移动端就跳转,还不如干脆在 nginx 里检查下 user agent , 直接跳走拉倒。
都不用初始化 laravel 。
可以写一个控制器继承Controller,在里面写判断方法,然后其他控制器继承这个控制器
@cbasil 别用重定向
建立中间件封装一层逻辑流转处理,控制器层逻辑处理,不作为逻辑流转。
前端自适应他不香吗
写到构造函数里可以吗
首先,,,
然后,,
由于你现在没有 PC 页面,如果是 PC 访问,就要返回错误,则可以做一个中间件来过滤,以后做了 PC 页面,把中间件去掉即可。
最后。。
如果你都是按照 mobile 或者 pc 的前缀划分的,,,可以放到 服务提供者 里面,根据客户端是否是 手机,重新注册 view 的根目录,,之后控制里,直接
return view('auth.member-index')
就可以了限制最大宽度&&居中,电脑看起来和手机一样