總結(jié)laravel-admin展示用到的基本方法
基礎(chǔ)用法
自定義model
當(dāng)列表數(shù)據(jù)獲取有特定條件或自己寫(xiě)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('名稱(chēng)');
注:name_cn為與數(shù)據(jù)庫(kù)對(duì)應(yīng)的字段名
$grid->column('name_cn','名稱(chēng)');
判斷type來(lái)顯示不同的狀態(tài)
$grid->column('type','類(lèi)型?')->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->disableCreateButton();
禁用行選擇checkbox
$grid->disableRowSelector();
去掉重置 [from]
關(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表單提交
禁用重置按鈕
文本輸入框
//默認(rèn)展示$data['name']的值,新接收的值存儲(chǔ)user表name字段
$form->text('user.name', '名稱(chēng)')->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', '類(lèi)型')->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);
隱藏域
保存數(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寫(xiě)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è)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- laravel+vue組合的項(xiàng)目中引入ueditor方式(打包成組件形式)
- 在laravel中使用Symfony的Crawler組件分析HTML
- Laravel框架中擴(kuò)展函數(shù)、擴(kuò)展自定義類(lèi)的方法
- PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁(yè)
- laravel通過(guò)創(chuàng)建自定義artisan make命令來(lái)新建類(lèi)文件詳解
- Laravel中重寫(xiě)資源路由自定義URL的實(shí)現(xiàn)方法
- Laravel Validator自定義錯(cuò)誤返回提示消息并在前端展示
- Laravel認(rèn)證原理以及完全自定義認(rèn)證詳解
- Laravel5.5以下版本中如何自定義日志行為詳解
- laravel框架學(xué)習(xí)筆記之組件化開(kāi)發(fā)實(shí)現(xiàn)方法