↓ 快轉到主要內容
[作品][Laravel Package] Sitemap : 使用Laravel Route產生網站結構陣列
作品整理Laravel Package

[作品][Laravel Package] Sitemap : 使用Laravel Route產生網站結構陣列

Posted by Alvin Chen on

[作品][Laravel Package] Sitemap : 使用Laravel Route產生網站結構陣列

·724 字·2 分鐘
作者
Alvin Chen
相信寫 Code 可以改變世界

套件名稱 : Virtualorz/Sitmap

開發年份 : 2019

gitHub連結 : https://github.com/virtualorz/sitemap

內容簡介 :

因應Laravel每條URL都需要寫進Rote中,而幾次的後台專案開發後如果結構性選單需要獨立儲存的話會變得非常麻煩,

比如說新增加一個頁面就必須修改route以及結構選單資料兩者,Virtualorz/Sitemap就是為了這個生出來的,

他可以直接透過route資料檔來產生網站結構性資料,並且生成麵包屑以及選單結構資料,

當然,相對的route的寫法就必須要加入其他必要參數,但是已經變得簡易許多

  • Laravel:100%

安裝方式 :
#

composer require virtualorz/sitemap

編輯 config/app.php

'providers' => [
    ...
    Virtualorz\Sitemap\SitemapServiceProvider::class
]

'aliases' => [
    ...
    'Sitemap' => Virtualorz\Sitemap\Facades\Sitemap::class,
]

方法簡介 :
#

1.getTreeView

從route/web.php 結構取得全站結構,依照web.php中設定的parent參數可以重新整理知道所有頁面的上下層關係,進而整理成為key為parent name的陣列回傳

2.getNaviPat($pageName = null)

回傳麵包屑各node的陣列,如果$pageName是null,則回傳當頁面的navi path, 否則回傳指定頁面的

3.getParents($pageName = null)

回傳此頁的上層節點名稱,如果$pageName是null,則回傳當頁面到parent,否則回傳指定頁面的

4.getMenu($parmissionArray= null)

回傳全站左選單巢狀menu 結構陣列,如果$parmissionArray是nulll,則回傳全部的menu,否則只回傳包含在$parmissionArray中的

route/web.php範例

Route::get('/customer',
        [
            'as' => 'backend.customer.index' ,// 頁面名稱,作為ID使用
            'uses' => 'backend\CustomerController@index', //使用Controller名稱
            'parent' => 'backend.index', //上層頁面ID
            'name' => '客戶清單', //此頁面單名稱文字
            'label' =>'資料管理', //選單Label文字
            'fa' => 'fa-database' //選單fa-icon
        ]);
laravel sitmap

建立tree view範例

$sitemap = Sitemap::getTreeView();
$sitemap = Sitemap::routStruct('root',$sitemap);

備註 : 最新版本請參考gitHub連結說明