使用Laravel-admin后台,Laravel-admin已經集成了很多前端組件,但是在手冊中也沒有發現能夠展示相冊的插件,而本人比較喜歡Layer彈窗的插件所以想使用Layer來進行效果展示
通讀手冊找到了Laravel-admin是可以自己定義組件的。但是本人功力不夠。看不懂。。。。
還好除了自定義組件之外還可以進行前端資源引入
關於前端資源問題 如果需要使用自己的前端文件,可以在app/Admin/bootstrap.php中引入: Admin::css('path/to/your/css'); Admin::js('path/to/your/js');
上面引入自Laravel-admin手冊中常見問題 點擊查看鏈接 http://laravel-admin.org/docs/#/zh/qa
所以就將Layer資源下載到本地,然后放入Laravel中的public目錄下 本人版本下載3.1
然后在app/Admin/bootstrap.php中引入 use Encore\Admin\Facades\Admin; Admin::js('/layer-v3.1.1/layer-v3.1.1/layer/layer.js');
本人下載layer-v3.1.1版本,所以此處目錄請根據自己響應修改
然后之后就可以在控制器中直接使用layer的功能了
下面以本人所做layer相冊功能為例
首先添加彈出相冊功能按鈕 $grid->actions(function ($action) { $action->append('<a href="' . LayerPhoto(url('admin/scenic/get/photo'),1) . '"><i class="fa fa-eye"></i>查看相冊</a>'); });
上面代碼中LayerPhoto為自定義的函數
/* * LayerPhoto layer相冊使用 * $url 獲取數據的地址 * url地址返回格式 : * [ * 'title' => '', * 'id' => 1, * 'start' => 0 [ 'alt' => '圖片標題1', 'src' => '圖片地址' ], [ 'alt' => '圖片標題2', 'src' => '圖片地址' ], [ 'alt' => '圖片標題3', 'src' => '圖片地址' ], ] * * $type 相冊的彈出樣式 */ function LayerPhoto($url,$type = 1) { $script = "javascript:$.getJSON('{$url}',function(json){layer.photos({photos: json,anim :{$type}});});"; //此處不能分行顯示 必須不能存在空格 return $script; }
至於自定義函數功能解釋
首先建立函數PHP文件 app/自定義目錄/自定義文件名.php 在此文件中寫入自定義函數 然后在 composer.json中的autoload里面添加或者修改files "autoload": { ··· "psr-4": { "App\\": "app/" }, "files":[ "app/自定義目錄/自定義文件名.php" ] }, 然后執行 composer dump-autoload即可
之后便可以顯示出layer相冊功能了
其他Layer彈窗功能一樣處理即可
以上是我自己的想法,也可以實現layer的彈窗功能,不知道是否有更加便捷的方式可以實現,如果有希望能留言告知一下,萬分感謝