laravel-admin新手快速入門以及遇到的那些坑

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

感受不錯的話請點擊右上角  star  謝謝支持

laravel-admin  手冊地址框架

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的坑踩完,後期考慮在更新

若是你使用的是1.6.*版本點擊跳轉

實現二級聯動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]);
複製代碼

純原創,但願能夠對你們有幫助,文章會不斷更新,若有疑問或新坑,歡迎評論

相關文章
相關標籤/搜索