若是你要問我說最快的後臺搭建框架是什麼,我會堅決果斷的說,laravel-admin(https://laravel-admin.org/)。這個框架的做者是z-song,應該是騰訊公司的。它的官網寫着「在十分鐘內構建一個功能齊全的管理後臺」。沒有誇張,就是這麼虎。php
搭建完成的例子以下:
具體如何使用查看官網就能夠了。這裏就說下它用到的幾個技術。html
這個框架左邊導航選擇後,右邊頁面刷新,使用的技術是Pjax。它解決的就是局部刷新頁面的功能。這個技術說白了就是Ajax請求返回的不是json,而是html,替換頁面上的局部界面。前端
Pjax在前端是有一個jquery的庫支持的,jquery.pjax.js。這個庫基本原理是使用window.history.pushState來配合ajax進行頁面刷新,而且重置頁面的上一步,下一步的操做。要達到的效果就是雖然我只使用ajax更新頁面的一個部分,可是我也能像進入新頁面同樣擁有瀏覽器點擊上一步回退到舊的頁面的功能。html5
這個pushState是h5的特性。因此瀏覽器必需要支持h5。jquery
這三種結構,特別是前面兩種結構,是常常使用到的。grid和form使用的熟練與否就表明了咱們可否很好使用這個框架了。laravel
grid就是咱們查看一個模型頁面的表單。它借用php的魔術方法,把全部要展現的字段都封裝成了方法。大體代碼以下:ajax
return ReportTag::grid(function(Grid $grid) { $grid->id("標籤id"); $grid->name("標籤名稱"); $grid->parent("父級id"); $grid->created_at("建立時間"); });
而form則是咱們編輯/新建時候的表單。它則是以form表單的類型作方法:json
return ReportTag::form(function (Form $form) { $form->text('name', '標籤名字')->rules('required'); $form->text('parent', '父級id,若是自身就是父級,填0')->rules('required'); });
實際上,我在使用的過程當中遇到很多額外的需求。算是碰上了一些高級用法把。固然文檔裏面也都有,可是寫的不盡詳細。這裏我記錄下這些不常見的用法。api
$form = ReportTagArea::form(function (Form $form) use ($tags, $areas) { $form->select('area_id', '區域')->options($areas)->rules('required')->load("periods", "/tag/periods?q=[]"); $form->multipleSelect("periods", "時段")->rules("required"); });
上面例子就是我選擇了區域選項的時候,調用ajax接口,/tag/periods?q=[area_id] 來填充periods這個時段選擇框。(官網只說了聯動選擇能夠聯動兩個select,我試了下,能夠聯動select和multipleSelect)瀏覽器
$grid->actions(function ($actions) { // 跳轉到路口規則列表 $actions->append('<a href="/tag/junctions?area_id='. $actions->row->area_id .'"><i class="fa fa-eye"></i></a>'); });
使用 Admin::script方法
class FullController extends Controller { private function getjs() { return "alert(11)"; } public function index () { Admin::script($this->getjs()); return Admin::content(function (Content $content) { .... } } }
關於管理後臺,快速搭建快速相應是王道,有屎以來,我真心沒有見過比laravel-admin能更快搭建管理後臺的框架了。若是說laravel是個大斧子,laravel-admin就是一個鑲金嵌玉的斧子,只要你熟練掌握了使用方法,就能夠很方便完成你的需求。固然,若是有的bt需求是這個框架沒有想到的,那麼你可能花費的時間就會比平時更多。可是再強調一下,這個框架適合作的是管理後臺,通常管理後臺的需求,都是能夠和PM進行pk的,不是麼。
https://www.fanhaobai.com/2017/07/pjax.html https://www.renfei.org/blog/html5-introduction-3-history-api.html