Laravel配置雙模板的方法介紹(代碼示例)

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于laravel配置雙模板的方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

在開發(fā)過程中, 不時會遇到某些項目需要使用兩套模板

如PC端和Mobile端使用不同的模板文件, 以達到最佳的用戶體驗

遇到這種情況我們應該如何配置laravel的模板文件呢?

1. 安裝whichbrowser/parser 傳送門: WhichBrowser/Parser-php

用于判斷PC或Mobile設備, 按需加載不同的模板

composer require whichbrowser/parser

2. 使用artisan命令新建一個Middleware(中間件)

執(zhí)行后會在app/http/Middleware目錄生成中間件文件

php artisan make:middleware Template

3. 編輯Template.php文件

class Template {     protected $except = [];      public function handle($request, Closure $next)     {         $result = new WhichBrowserParser(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.php類中 按需注冊中間件

如注冊全局中間件:

protected $middleware = [     AppHttpMiddlewareTemplate::class, ];

搞定, 就可以根據(jù)不同的設備加載不同的模板文件了

在控制中只需這樣, 就可以根據(jù)不同的設備來加載不同的模板了

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

如從PC設備打開網(wǎng)頁: 加載?/resources/views/pc/registration/index.blade.php?模板

如從移動設備打開網(wǎng)頁: 加載?/resources/views/mobile/registration/index.blade.php?模板

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊13 分享