<s id="0oyqk"></s>
  • <option id="0oyqk"><optgroup id="0oyqk"></optgroup></option>
  • <source id="0oyqk"><bdo id="0oyqk"></bdo></source>
  • 關于Laravel-admin的基礎用法總結和自定義model詳解

     更新時間:2019-10-08 15:00:40   作者:佚名   我要評論(0)

    總結laravel-admin展示用到的基本方法
    基礎用法
    自定義model


    當列表數據獲取有特定條件或自己寫ORM方法時可以用到,支持排序
    $grid->model()->select('id',

    總結laravel-admin展示用到的基本方法

    基礎用法

    自定義model

    當列表數據獲取有特定條件或自己寫ORM方法時可以用到,支持排序
    $grid->model()->select('id','name')->where('status',1)->groupBy('project_id');
    $grid->model()->select('id','name')->where('status',1)->groupBy('project_id');
    //結合having 查出名字重復的
    $grid->model()->select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1')
    //嵌套子查詢 查出名字重復的全部信息
    $grid->model()->select('id','name_en')->whereIn('name_en',Project::select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1'))->orderBy('name_en');

    模型數據獲取

    第一列顯示id字段,并將這一列設置為可排序列

    $grid->id('ID')->sortable();

    獲取單列數據的方法

    $grid->name_cn('名稱');

    注:name_cn為與數據庫對應的字段名

    $grid->column('name_cn','名稱');

    判斷type來顯示不同的狀態

    $grid->column('type','類型?')->display(function ($type) {
     return $type == 1 ? '111' : '222';
    });

    where條件

    $grid->model()->where('type', 0);

    三個時間的顯示

    // 下面為三個時間字段的列顯示
    $grid->release_at();
    $grid->created_at();
    $grid->updated_at();

    篩選框控制方法

    基本方法

     //filter($callback)方法用來設置表格的簡單搜索框
     $grid->filter(function ($filter) {
      //1.時間段篩選 設置created_at字段的范圍查詢
      $filter->between('created_at', '篩選時間')->datetime();
      //2.字段模糊查詢 like = '% %'
      $filter->like('name', '姓名');
      //3.字段equal 篩選
      $filter->equal('status', '狀態')->select([0 => '下線', 1 => '上線']);
      //4.去掉默認的ID搜索
      $filter->disableIdFilter();
      //5.
    
     });
    

    按鈕控制

    禁用導出

    $grid->disableExport();

    禁用新增

    $grid->disableCreateButton();

    禁用行選擇checkbox

    $grid->disableRowSelector();

    去掉重置 [from]

    $form->disableReset();

    關閉默認行操作

     $grid->actions(function ($actions) {
      //關閉刪除
     $actions->disableDelete();
     //關閉編輯
     $actions->disableEdit();
     //自定義操作按鈕
     $actions->append('<button type="button" class="btn btn-danger noShow" data-id="' . $actions->getKey() . '" >隱藏</button>');
    });

    關閉批量刪除

    $grid->tools(function ($tools) {
     //關閉批量刪除
     $tools->batch(function ($batch) {
      $batch->disableDelete();
     });
    });

    FORM表單提交

    禁用重置按鈕

     $form->disableReset();

    文本輸入框

    //默認展示$data['name']的值,新接收的值存儲user表name字段
    $form->text('user.name', '名稱')->default($data['name']);

    上傳圖片/文件

    $form->image('user.logo', 'logo')
        #隨機文件名
        ->uniqueName()
        #驗證文件格式('mimes:doc,docx,xlsx');
        ->rules('mimes:png')
        #輸入框下邊的help提示語
        ->help($str);

    表單提交url

    $form->url('user.website', '官網')
        #默認填充url 傳參
        ->default($url)
        #提示的url
        ->help('eg: http://www.aware.bi');

    表單提交下拉框

    #下拉框展示$message提示語
    $form->multipleSelect('project.tags1', $message)
        #下拉框數據
        ->options($tags['children']);

    select下來

    $types = array('0'=>'教育','1'=>'醫療');
    $form->select('type', '類型')->options($types);

    laravel SQL取值

    $users = User::all()->pluck('name', 'id')->toArray();

    表單輸入HTML editor編輯器

    $form->editor('detail', '詳細介紹');

    單選按鈕 樣式轉換

    $states = [
     'on' => ['value' => 1, 'text' => '上線', 'color' => 'success'],
     'off' => ['value' => 0, 'text' => '下線', 'color' => 'danger'],
    ];
    $form->switch('status', '上/下線')->states($states);

    隱藏域

    $form->hidden('is_in');

    保存數據的回調

    $form->saving(function (Form $form) {
     #指定值為固定1
     $form->is_in = 1;
     #驗證值是夠有重復
     if($from->nick_name !== $form->model()->email && User::where('email',$form->email)->value('id')){
     #錯誤信息提示
     $error = new MessageBag(['title'=>'提示','message'=>'郵箱已存在!']);
      return back()->withInput()->with(compact('error'));
     }
    });
    
    

    自定義按鈕操作

    我們先自定義了一個隱藏按鈕

     $grid->actions(function ($actions) {
     //自定義操作按鈕
     $actions->append('<button type="button" class="btn btn-danger noShow" 
     data-id="' . $actions->getKey() . '" >隱藏</button>');
     //當前數據的ID
    });

    在controller寫JS文件把執行JS渲染到模板

       $js = <<<EOD
       <script>
       //隱藏的點擊事件
    $(document).on('click', '.noShow', function() {
     //獲取的ID
     var id = $(this).data('id');
      console.log(id);
     swal({
      title: "確認隱藏?",
      type: "warning",
      showCancelButton: true,
      confirmButtonColor: "#DD6B55",
      confirmButtonText: "確認",
      closeOnConfirm: false,
      cancelButtonText: "取消"
     },
     function(){
      $.ajax({
       method: 'post',
       url: '/admin/articles/hidden',
       data: {
        //文章ID
        id:id,
        //post請求token
        _token:LA.token,
       },
       success: function (data) {
        $.pjax.reload('#pjax-container');
        if (typeof data === 'object') {
         if (data.status == 1) {
          swal(data.msg, '', 'success');
         } else {
          swal(data.msg, '', 'error');
         }
        }
       }
      })
     }
     )
    });
       </script>
    EOD;
       //傳遞到頁面
       $content->body($js);
       //執行你的model
       $content->body();

    以上這篇關于Laravel-admin的基礎用法總結和自定義model詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

    您可能感興趣的文章:

    • 基于Laravel-admin 后臺的自定義頁面用法詳解
    • laravel-admin 在列表頁添加自定義按鈕的例子
    • 在Laravel的Model層做數據緩存的實現

    相關文章

    最新評論

    种子磁力搜索器