laravel-admin
是一個用於爲Laravel提供後臺界面的構建器前端
僅僅經過數行代碼,就能夠幫助咱們構建CRUD後臺。laravel
laravel-admin
不須要寫前端頁面,在控制器controller中渲染便可爲了方便你們使用,下面部分代碼都是屬於可複製的demogit
Laravel-admin 自定義excel導出數據github
laravel-admin報錯:Disk [admin] not configured, please add a disk config in `config請點擊連接找解決方案數據庫
遇到報錯:Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytesapi
本身寫的工資管理系統可查看源碼 github.com/WXiangQian/…bash
本身寫的辦公用品管理系統可查看源碼 github.com/WXiangQian/…app
laravel-admin demo地址 打開demo.laravel-admin.org/auth/login,用帳號密碼admin/admin
登錄
laravel-admin 安裝地址:laravel-admin.org/docs/zh/ins…
model-grid
支持快速構建數據表格
model-form
支持快速構建數據表單
model-tree
支持快速構建樹狀數據
如下方法都是1.5.*的操做,因爲框架在不斷更新,新坑會更多,因此我先把1.5的坑踩完,後期考慮在更新
實現二級聯動select
// form代碼
// 其中load('d_id', '/admin/users/d_id');的意思是,在當前select的選項切換以後,
//會把當前選項的值經過參數q,調用接口/admin/users/d_id,並把api返回的數據填充爲d_id選擇框的選項
$form->select('pid', '部門')->options(Department::where('pid', 0)->pluck('name', 'id'))
->load('d_id', '/admin/users/d_id')->rules('required');
$form->select('d_id', '崗位')->options(function ($id) {
return Department::where('id', $id)->pluck('name', 'id');
})->rules('required');
// routes
$router->get('/users/d_id', 'UsersController@d_id');//切記,放資源路由上方
//controller
public function d_id(Request $request)
{
$q = $request->get('q');
return Department::where('pid', $q)->get(['id', DB::raw('name as text')]);
}
複製代碼
禁用建立按鈕
$grid->disableCreateButton();
複製代碼
禁用分頁條
$grid->disablePagination();
複製代碼
禁用查詢過濾器
$grid->disableFilter();
複製代碼
禁用導出數據按鈕
$grid->disableExport();
複製代碼
禁用行操做列
$grid->disableActions();
複製代碼
設置分頁選擇器選項
$grid->perPages([10, 20, 30, 40, 50]);
複製代碼
model-grid
默認有兩個行操做編輯
和刪除
,能夠經過下面的方式關閉它們:
$grid->actions(function ($actions) {
// 隱藏刪除按鈕
$actions->disableDelete();
// 隱藏修改按鈕
$actions->disableEdit();
});
複製代碼
若是有自定義的操做按鈕,能夠經過下面的方式添加:
$grid->actions(function ($actions) {
// append一個操做
$actions->append('<a href=""><i class="fa fa-eye"></i></a>');
// prepend一個操做
$actions->prepend('<a href=""><i class="fa fa-paper-plane"></i></a>');
});
複製代碼
獲取主鍵信息或者獲取當前行的數組
$grid->actions(function ($actions) {
// 當前行的數據數組
$row = $actions->row;
// 獲取當前行主鍵值
$id = $actions->getKey();
});
複製代碼
目前默認實現了批量刪除操做的功能,若是要關掉批量刪除操做:
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete();
});
});
複製代碼
查詢過濾Filter**:以下**
$grid->filter(function ($query) {
// 去掉默認的id過濾器
$query->disableIdFilter();
$query->like('title', '文章標題');
$query->equal('cate_id', '所屬分類')->select(
ArticleCategories::pluck('name', 'id')
);
});
複製代碼
form的一些小技巧 :
$form->text('from', '文章來源')->rules('required') //能夠加rules驗證規則
$form->image('thumb', '文章縮略圖')->uniqueName()
->move('upload/article/' . date("Ymd"))
->options(['overwriteInitial' => true]);//表明新圖片替換修圖片
->uniqueName() //爲隨機名稱
//保存前回調
$form->saving(function (Form $form) {
});
//保存後回調
$form->saved(function (Form $form) {
});
// 設置表單提交的action
$form->setAction('admin/users');
複製代碼
獲取URL中的id
$shopId = request()->route()->parameter('shop');
複製代碼
當爲添加操做時,店鋪名稱不可和數據庫內其餘數據重複
當爲修改操做時,店鋪名稱除本身外不可和數據庫內其餘數據重複
if ($shopId) {
$form->text('shop_name', '店鋪名稱')
->rules("required|unique:shops,shop_name,{$shopId},id");
} else {
$form->text('shop_name', '店鋪名稱')
->rules("required|unique:shops");
}
複製代碼
進入grid表格時,默認id倒序
$grid->model()->orderBy('id', 'desc');
複製代碼
模型樹Tree
public function index()
{
return Admin::content(function (Content $content) {
$content->header('**管理');
$content->description('');
$content->body($this->tree());
});
}
protected function tree()
{
return Department::tree(function (Tree $tree) {
$tree->branch(function ($data) {
return "{$data['name']}";
});
});
}
複製代碼
在頁面調用下面的方法,它將會調用toastr組件,在頁面的右上角添加一條浮動的提示
admin_toastr('Message...', 'success');
admin_toastr('Message...', 'info');
admin_toastr('Message...', 'warning');
admin_toastr('Message...', 'error');
複製代碼
也能夠接收第三個參數,給toastr添加設置參數,更多參數參考toastr
admin_toastr('Message...', 'success', ['timeOut' => 5000]);
複製代碼