關(guān)于Laravel-admin的基礎(chǔ)用法總結(jié)和自定義model詳解
總結(jié)laravel-admin展示用到的基本方法
基礎(chǔ)用法
自定義model
當(dāng)列表數(shù)據(jù)獲取有特定條件或自己寫ORM方法時(shí)可以用到,支持排序 $grid->model()->select('id','name')->where('status',1)->groupBy('project_id'); $grid->model()->select('id','name')->where('status',1)->groupBy('project_id'); //結(jié)合having 查出名字重復(fù)的 $grid->model()->select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1') //嵌套子查詢 查出名字重復(fù)的全部信息 $grid->model()->select('id','name_en')->whereIn('name_en',Project::select('name_en')->groupBy('name_en')->havingRaw('count(name_en)>1'))->orderBy('name_en');
模型數(shù)據(jù)獲取
第一列顯示id字段,并將這一列設(shè)置為可排序列
$grid->id('ID')->sortable();
獲取單列數(shù)據(jù)的方法
$grid->name_cn('名稱');
注:name_cn為與數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段名
$grid->column('name_cn','名稱');
判斷type來(lái)顯示不同的狀態(tài)
$grid->column('type','類型?')->display(function ($type) { return $type == 1 ? '111' : '222'; });
where條件
$grid->model()->where('type', 0);
三個(gè)時(shí)間的顯示
// 下面為三個(gè)時(shí)間字段的列顯示 $grid->release_at(); $grid->created_at(); $grid->updated_at();
篩選框控制方法
基本方法
//filter($callback)方法用來(lái)設(shè)置表格的簡(jiǎn)單搜索框 $grid->filter(function ($filter) { //1.時(shí)間段篩選 設(shè)置created_at字段的范圍查詢 $filter->between('created_at', '篩選時(shí)間')->datetime(); //2.字段模糊查詢 like = '% %' $filter->like('name', '姓名'); //3.字段equal 篩選 $filter->equal('status', '狀態(tài)')->select([0 => '下線', 1 => '上線']); //4.去掉默認(rèn)的ID搜索 $filter->disableIdFilter(); //5. });
按鈕控制
禁用導(dǎo)出
$grid->disableExport();
禁用新增
$grid->disableCreateButton();
禁用行選擇checkbox
$grid->disableRowSelector();
去掉重置 [from]
$form->disableReset();
關(guān)閉默認(rèn)行操作
$grid->actions(function ($actions) { //關(guān)閉刪除 $actions->disableDelete(); //關(guān)閉編輯 $actions->disableEdit(); //自定義操作按鈕 $actions->append('<button type="button" class="btn btn-danger noShow" data-id="' . $actions->getKey() . '" >隱藏</button>'); });
關(guān)閉批量刪除
$grid->tools(function ($tools) { //關(guān)閉批量刪除 $tools->batch(function ($batch) { $batch->disableDelete(); }); });
FORM表單提交
禁用重置按鈕
$form->disableReset();
文本輸入框
//默認(rèn)展示$data['name']的值,新接收的值存儲(chǔ)user表name字段 $form->text('user.name', '名稱')->default($data['name']);
上傳圖片/文件
$form->image('user.logo', 'logo') #隨機(jī)文件名 ->uniqueName() #驗(yàn)證文件格式('mimes:doc,docx,xlsx'); ->rules('mimes:png') #輸入框下邊的help提示語(yǔ) ->help($str);
表單提交url
$form->url('user.website', '官網(wǎng)') #默認(rèn)填充url 傳參 ->default($url) #提示的url ->help('eg: http://www.aware.bi');
表單提交下拉框
#下拉框展示$message提示語(yǔ) $form->multipleSelect('project.tags1', $message) #下拉框數(shù)據(jù) ->options($tags['children']);
select下來(lái)
$types = array('0'=>'教育','1'=>'醫(yī)療'); $form->select('type', '類型')->options($types);
laravel SQL取值
$users = User::all()->pluck('name', 'id')->toArray();
表單輸入HTML editor編輯器
$form->editor('detail', '詳細(xì)介紹');
單選按鈕 樣式轉(zhuǎn)換
$states = [ 'on' => ['value' => 1, 'text' => '上線', 'color' => 'success'], 'off' => ['value' => 0, 'text' => '下線', 'color' => 'danger'], ]; $form->switch('status', '上/下線')->states($states);
隱藏域
$form->hidden('is_in');
保存數(shù)據(jù)的回調(diào)
$form->saving(function (Form $form) { #指定值為固定1 $form->is_in = 1; #驗(yàn)證值是夠有重復(fù) if($from->nick_name !== $form->model()->email && User::where('email',$form->email)->value('id')){ #錯(cuò)誤信息提示 $error = new MessageBag(['title'=>'提示','message'=>'郵箱已存在!']); return back()->withInput()->with(compact('error')); } });
自定義按鈕操作
我們先自定義了一個(gè)隱藏按鈕
$grid->actions(function ($actions) { //自定義操作按鈕 $actions->append('<button type="button" class="btn btn-danger noShow" data-id="' . $actions->getKey() . '" >隱藏</button>'); //當(dāng)前數(shù)據(jù)的ID });
在controller寫JS文件把執(zhí)行JS渲染到模板
$js = <<<EOD <script> //隱藏的點(diǎn)擊事件 $(document).on('click', '.noShow', function() { //獲取的ID var id = $(this).data('id'); console.log(id); swal({ title: "確認(rèn)隱藏?", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "確認(rèn)", closeOnConfirm: false, cancelButtonText: "取消" }, function(){ $.ajax({ method: 'post', url: '/admin/articles/hidden', data: { //文章ID id:id, //post請(qǐng)求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; //傳遞到頁(yè)面 $content->body($js); //執(zhí)行你的model $content->body();
以上這篇關(guān)于Laravel-admin的基礎(chǔ)用法總結(jié)和自定義model詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
去掉destoon資訊內(nèi)容頁(yè)keywords關(guān)鍵字自帶的文章標(biāo)題的方法
這篇文章主要介紹了去掉destoon資訊內(nèi)容頁(yè)keywords關(guān)鍵字自帶的文章標(biāo)題的方法,有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08網(wǎng)頁(yè)游戲開發(fā)入門教程三(簡(jiǎn)單程序應(yīng)用)
用哪種組合,真的不重要。重要的是時(shí)間和成本。復(fù)雜的地方在數(shù)據(jù)的交互和完善,而不在技術(shù)或效果的實(shí)現(xiàn)。2009-11-11php微信公眾號(hào)js-sdk開發(fā)應(yīng)用
這篇文章主要為大家詳細(xì)介紹了php微信公眾號(hào)js-sdk開發(fā)應(yīng)用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Joomla實(shí)現(xiàn)組件中彈出一個(gè)模式(modal)窗口的方法
這篇文章主要介紹了Joomla實(shí)現(xiàn)組件中彈出一個(gè)模式(modal)窗口的方法,列舉了2種常用的Joomla彈出模式窗口的技巧供大家對(duì)比參考,需要的朋友可以參考下2016-05-05利用php+mysql來(lái)做一個(gè)功能強(qiáng)大的在線計(jì)算器
有天在努力的搜索計(jì)算器,發(fā)現(xiàn)都是JavaScript,而且要一個(gè)個(gè)地點(diǎn)擊,并且不能記錄,輸入計(jì)算式子時(shí)容易出錯(cuò),于是就想了想該怎樣才能讓它好用點(diǎn)呢,能夠用鍵盤直接輸入。2010-10-10Thinkphp5框架實(shí)現(xiàn)圖片、音頻和視頻文件的上傳功能詳解
這篇文章主要介紹了Thinkphp5框架實(shí)現(xiàn)圖片、音頻和視頻文件的上傳功能,結(jié)合實(shí)例形式分析了thinkPHP5文件上傳的原理、操作步驟、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-08-08