laravel通过agent库进行网站pc/移动端不同模板显示

自适应是通常采用方法,但是如果客户不喜欢自适应可以采用这种办法

Posted by 昆山吴彦祖 on 2019.04.18

jenssegers/agent

是一个基于composer可以安装的php用户访问信息判断库,laravel直接composer安装即可使用


1、安装库

composer require jenssegers/agent

2、创建用户来源判断中间件

php artisan make:middleware CheckAgent

3、编辑中间件

namespace App\Http\Middleware;

use Closure;
use Jenssegers\Agent\Agent;

class CheckAgent
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
		$agent = new Agent();
		
		if($agent->isMobile()){
			session(['isMobile'=>true]);
		}else{
			session(['isMobile'=>false]);
		}
		
        return $next($request);
    }
}

4、中间件注册 app/Http/Kernel.php

protected $middlewareGroups = [
        'web' => [
...
            //新增这行
            \App\Http\Middleware\CheckAgent::class,
        ],
...
    ];


5、调用模板的时候进行session判断

Route::get('/', function () {
    return view(session('isMobile')?'mobile.index':'pc.index');
});


agent