>  기사  >  PHP 프레임워크  >  Laravel에서 이중 템플릿을 구성하는 방법 소개(코드 예)

Laravel에서 이중 템플릿을 구성하는 방법 소개(코드 예)

不言
不言앞으로
2019-03-02 13:43:173309검색

이 글은 Laravel에서 이중 템플릿을 구성하는 방법(코드 예제)을 소개합니다. 참고할 만한 가치가 있으므로 도움이 필요한 친구들에게 도움이 되길 바랍니다.

개발 과정에서 때때로 두 가지 템플릿 세트를 사용해야 하는 특정 프로젝트에 직면할 수 있습니다.

예를 들어 PC 측과 모바일 측에서는 최상의 사용자 경험을 달성하기 위해 서로 다른 템플릿 파일을 사용합니다

What 이런 상황이 발생하면 어떻게 해야 할까요? Laravel의 템플릿 파일을 구성하는 것은 어떨까요?

1. whichbrowser/parser 설치 포털:whichBrowser/Parser-PHP

whichbrowser/parser 传送门: WhichBrowser/Parser-PHP

用于判断PC或Mobile设备, 按需加载不同的模板

composer require whichbrowser/parser

2. 使用artisan命令新建一个Middleware(中间件)

执行后会在app/Http/Middleware目录生成中间件文件

php artisan make:middleware Template

3. 编辑Template.php文件

class Template
{
    protected $except = [];

    public function handle($request, Closure $next)
    {
        $result = new WhichBrowser\Parser(getallheaders());
        // 如果是桌面类型, 返回true
        $isDesktop = $result->isType('desktop');
        if ($isDesktop) {
            // 加载pc端的模板文件
            $path = resource_path('views/pc/');
        } else {
            // 加载mobile端的模板文件
            $path = resource_path('views/mobile/');
        }
        // 获取视图查找器实例
        $view = app('view')->getFinder();
        // 重新定义视图目录
        $view->prependLocation($path);
        // 返回请求
        return $next($request);
    }
}

4. 最后注册中间件

app/Http/Kernel.phpPC 또는 모바일 장치를 결정하는 데 사용됩니다. 요청 시 다른 템플릿 로드

protected $middleware = [
    \App\Http\Middleware\Template::class,
];

2. artisan 명령을 사용하여 새 미들웨어(미들웨어)를 생성합니다.

실행 후 미들웨어 파일은 app/Http/Middleware 디렉토리에 생성됩니다

return view('registration.index', $data);

3. Template.php 파일을 편집합니다

rrreee

4. 마지막으로 미들웨어를 등록합니다

app/Http/에서 Kernel.php 클래스에 주문형 미들웨어를 등록하세요

예를 들어 전역 미들웨어를 등록하세요:

rrreee

그 후에는 각기 다른 템플릿 파일을 로드할 수 있습니다. devices

컨트롤에서 이렇게 하세요. 다양한 기기에 따라 다양한 템플릿이 로드됩니다🎜rrreee🎜예를 들어 PC 기기에서 웹페이지를 열 때: /resources/views/pc/registration/index.blade.php 템플릿 로드🎜 🎜예를 들어 모바일 장치에서 웹페이지를 열 때: Load /resources/views /mobile/registration/index.blade.php template🎜🎜🎜

위 내용은 Laravel에서 이중 템플릿을 구성하는 방법 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제